Byl zveřejněn Vortex 2.1, otevřený GPGPU založený na architektuře RISC-V

Byla vydána nová verze projektu Vortex, který vyvíjí otevřený GPGPU založený na architektuře instrukčního souboru RISC-V, navržený pro provádění paralelních výpočtů pomocí API OpenCL a modelu provádění SIMT (Single Instruction, Multiple Threads). Projekt může být také využit v oblasti výzkumu 3D grafiky a při vývoji nových GPU architektur. Schémata, popisy hardwarových bloků v jazyce Verilog, simulátory, ovladače a související projektová dokumentace jsou dostupné pod licencí Apache 2.0.

Základem GPGPU je typový ISA RISC-V, rozšířený o některé další instrukce potřebné k podpoře funkcí GPU a řízení vláken. Při tom jsou změny v architektuře instrukčního souboru RISC-V minimalizovány a co nejvíce se využívají již existující vektorové instrukce. Podobný přístup se používá v projektu RV64X, který také rozvíjí otevřený GPU založený na technologiích RISC-V.

Byl zveřejněn Vortex 2.1, otevřený GPGPU založený na architektuře RISC-V

Hlavní vlastnosti Vortex:

  • Podpora 32- a 64bitových architektur instrukčního souboru RISC-V RV32IMF a RV64IMAFD.
  • Nastavitelné množství jader, bloků úloh (warps) a vláken.
  • Nastavitelné množství ALU, FPU, LSU a SFU pro každé jádro.
  • Nastavitelná šířka vydávání konvejeru (pipeline issue width).
  • Volitelná sdílená paměť a cache úrovní L1, L2 a L3.
  • Podpora specifikace OpenCL 1.2.
  • Možnost implementace na bázi FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 a Xilinx Versal VCK5000.
  • Rozšířené instrukce: «tex» pro urychlení zpracování textur, vx_rast pro řízení rastrování, vx_rop pro zpracování fragmentů, hloubky a průhlednosti, vx_imadd pro provádění operace «násobit a sečíst», vx_wspawn, vx_tmc a vx_bar pro aktivaci front instrukcí a vláken v nich (wavefront, soubor nití, paralelně prováděných SIMD Engine), vx_split a vx_join.
  • Podpora mezivstupního zobrazení shaderů SPIR-V je realizována prostřednictvím translace do OpenCL.
  • Pro vývoj aplikací je nabízen nástroj zahrnující přizpůsobené varianty PoCL (kompilátor a runtime OpenCL), LLVM/Clang, GCC a Binutils pro práci s Vortex.
  • Je podporována simulace čipu pomocí Verilator (Verilog simulátor), RTLSIM (simulace RTL) a SimX (softwarová simulace).

Pro grafiku na technologiích Vortex se vyvíjí otevřený GPU Skybox, který podporuje grafický API Vulkan. Prototyp Skybox, vytvořený na bázi FPGA Altera Stratix 10 a zahrnující 32 jader (512 vláken), umožnil při frekvenci 230 MHz dosáhnout výkonu plnění ve výši 3,7 gigapixelů za sekundu (29,4 gigatranzakcí za sekundu). Uvádí se, že je to první otevřený GPU s softwarovou a hardwarovou realizací, který podporuje Vulkan.

Mezi změnami ve verzi Vortex 2.1:

  • Přidán API spawn_taskgroups pro spuštění jader využívajících lokální paměť a podporujících stanovení bariér na paměť.
  • Navrženo nové rozšíření pro vytváření přemístitelných (relocatable) binárních jader.
  • Do API správy paměti byly přidány volání vx_mem_reserve, vx_mem_access a vx_mem_address.
  • Přidán nový runtime API vx_check_occupancy.
  • Do ovladače GPU byla přidána možnost pro kontrolu OpenCL testů na lokálním GPU.
  • Přidány testy OpenCL, využívající lokální paměť (psum, sgemm2, sgemm3).
  • Přidány speciálně přizpůsobené verze knihoven libc a librt pro Vortex.
  • Přidána podpora slučování sousedních volných bloků paměti (memory coalescing).
  • Byla provedena optimalizace mikroarchitektury.
  • Přidán nový skript pro sestavení, který odděluje zdrojové soubory od katalogu pro sestavení.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster