Bylo zveřejněno Vortex 3.0, otevřený GPGPU založený na architektuře RISC-V

Byl uvolněn projekt Vortex 3.0, který vyvíjí otevřený GPGPU založený na architektuře instrukčního souboru RISC-V, určený k provádění paralelních výpočtů pomocí API OpenCL a modelu provádění SIMT (Single Instruction, Multiple Threads). Projekt lze také využít pro výzkum v oblasti 3D grafiky a pro vývoj nových architektur GPU. Schémata, popisy hardwarových bloků v jazyce Verilog, simulátor, ovladače a související projektová dokumentace jsou k dispozici pod licencí Apache 2.0.

Základem GPGPU je typový ISA RISC-V, který je rozšířen o další instrukce na podporu funkcí GPU a řízení vláken. Změny v architektuře instrukčního souboru RISC-V jsou minimalizovány a pokud je to možné, využívají již existující vektorové instrukce. Mezi další instrukce patří: „tex“ pro zrychlení zpracování textur; vx_rast pro řízení rastrování, vx_rop pro zpracování fragmentů, hloubky a průhlednosti; vx_imadd pro provedení operace „násobit a sečíst“; vx_wspawn, vx_split, vx_join, vx_tmc a vx_bar pro aktivaci skupin vláken (wavefront), které se paralelně provádějí v SIMD Engine.

Vyvíjený GPGPU podporuje 32- a 64-bitové architektury instrukčního souboru RISC-V RV32IMF a RV64IMAFD, a může zahrnovat volitelnou sdílenou paměť, keše úrovní L1, L2 a L3, jakož i nastavitelné množství jader, bloků úloh (warps) a vláken. Pro každé jádro je rovněž možné aktivovat nastavitelné množství ALU, FPU, LSU a SFU. Pro vytváření prototypů lze použít FPGA Xilinx a Altera, a pro simulaci čipu lze aplikovat Verilator (Verilog simulátor), RTLSIM (simulace RTL) a SimX (softwarová simulace).

Pro vývoj aplikací je k dispozici nástrojový set, který zahrnuje adaptované verze PoCL (kompilátor a runtime OpenCL) pro práci s Vortex, LLVM/Clang, GCC a Binutils. Projekt podporuje specifikaci OpenCL 1.2 a prostřednictvím překladů do OpenCL implementuje podporu pro mezipředstavení shaderů SPIR-V.

Mezi změnami ve Vortex 3.0:

  • Byl přidán hardwarový grafický stack, který zahrnuje bloky pro rastrování, překrývání textur a sloučení výstupu (OM — Output Merger). Pro Mesa na základě implementovaného grafického stacku a softwarového rastrování lavapipe byl připraven Vulkan ovladač vortexpipe.
  • Byly rozšířeny možnosti tenzorového jádra, které je určeno pro zrychlení provádění modelů strojového učení, a nyní podporuje strukturální sparsity pro kompresi váhových matic.
  • Byla implementována operace WGMMA (warpgroup-level matrix multiplication) pro násobení matic v asynchronním režimu.
  • Byl přidán engine DXA (Data Transfer Acceleration) pro zrychlení přenosu dat z globální do lokální paměti.
  • Byla realizována nová architektura založená na příkazovém procesoru (CP, Command Processor) a hardwarovém plánovači výpočetních jader (KMU — Kernel Management Unit), která umožňuje přenášet na stranu čipu operace přidělování výpočetních toků.
  • Byla navržena nová runtime knihovna fungující v neblokujícím režimu, která poskytuje abstrakce přeusťující v hardwarově asynchronně vykonávané příkazy. Podporovány jsou fronty, události, moduly a synchronizace na základě asynchronních bariér s semantikou arrive/wait/event.
  • Byla přidána podpora zkrácených instrukcí RISC-V (RVC).
  • Byla zrealizována hardwarová podpora atomických operací (Hardware Atomics).
  • Byl kompletně přepracován FPU a byly navrženy nové bloky násobičů (Wallace-tree, Folded-radix) a sčítačů (Kogge-Stone).
  • Byl přidán zásobník virtuální paměti na základě bloku řízení paměti (MMU) s podporou 32-bitové architektury virtuální adresace SV32.
  • Podpora rozšíření RISC-V Zicond s realizací podmínkových operací.
  • Integrované řízení taktování (clock gating).
  • Byla implementována podpora jazyka HIP (Heterogeneous Interface for Portability) prostřednictvím frameworku chipStar, který překládá HIP do SPIR-V.
  • Byla zajištěna plná integrace se simulátorem GEM5 a byla přidána podpora simulátoru SimX na architektuře TLM (Transaction-Level Modeling).
  • Byla přidána podpora nástrojů Synopsys a Yosys pro syntézu logiky pro výrobu čipů, stejně jako podpora použití knihoven standardních prvků ASAP7 (7nm), SAED14 (14nm) a NanGate (15nm).
  • Referenční nástroj byl aktualizován na LLVM 20 a POCL 7.0.

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