Vortex 2.0 este disponibil, un GPGPU deschis bazat pe arhitectura RISC-V

A doua ediție a proiectului Vortex a fost publicată, dezvoltând un GPGPU deschis bazat pe arhitectura setului de instrucțiuni RISC-V, proiectat pentru a efectua calcule paralele utilizând API-ul OpenCL și modelul de execuție SIMT (Single Instruction, Multiple Threads). Proiectul poate fi folosit și în cercetări în domeniul graficii 3D și pentru dezvoltarea de noi arhitecturi GPU. Schemele, descrierile blocurilor hardware în limbajul Verilog, simulatorul, driverele și documentația de proiect asociată sunt distribuite sub licența Apache 2.0.

Baza GPGPU o constituie ISA RISC-V standard, extins cu unele instrucțiuni suplimentare necesare pentru susținerea funcțiilor GPU și gestionarea fluxurilor. Modificările în arhitectura setului de instrucțiuni RISC-V sunt minimizate, iar acolo unde este posibil sunt utilizate deja instrucțiunile vectoriale existente. O abordare similară este aplicată în proiectul RV64X, care dezvoltă, de asemenea, un GPU deschis pe baza tehnologiilor RISC-V.

Vortex 2.0 este disponibil, un GPGPU deschis bazat pe arhitectura RISC-V

Pentru grafică, tehnologiile Vortex dezvoltă GPU-ul deschis Skybox, care suportă API-ul grafic Vulkan. Prototipul Skybox, creat pe baza FPGA Altera Stratix 10 și incluzând 32 de nuclee (512 fire de execuție), a permis, la o frecvență de 230 MHz, obținerea unei performanțe de umplere de 3.7 gigapixeli pe secundă (29.4 gigatranzacții pe secundă). Se remarcă faptul că acesta este primul GPU deschis cu implementare software și hardware, care suportă Vulkan.

Caracteristicile principale ale Vortex:

  • Suport pentru arhitecturi RISC-V de 32 și 64 de biți RV32IMF și RV64IMAFD.
  • Număr configurabil de nuclei, blocuri de sarcini (warps) și fire.
  • Număr configurabil de ALU, FPU, LSU și SFU pentru fiecare nucleu.
  • Lățime de emisie a canalului (pipeline issue width) configurabilă.
  • Memorie opțională partajată și cache-uri de niveluri L1, L2 și L3.
  • Suport pentru specificația OpenCL 1.2.
  • Posibilitatea implementării pe bază de FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 și Xilinx Versal VCK5000.
  • Instrucțiuni extinse: „tex” pentru accelerarea procesării texturilor, vx_rast pentru gestionarea rasterizării, vx_rop pentru procesarea fragmentelor, adâncimii și transparenței, vx_imadd pentru realizarea operației „înmulțire și adunare”, vx_wspawn, vx_tmc și vx_bar pentru activarea fronturilor de instrucțiuni și a firelor din acestea (wavefront, set de fire, executate simultan SIMD Engine), vx_split și vx_join.
  • Suportul pentru reprezentarea intermediară a shaderelor SPIR-V este realizat prin translație în OpenCL.
  • Pentru dezvoltarea aplicațiilor, se oferă un instrumentar care include variante adaptate pentru a lucra cu Vortex, precum PoCL (compilator și runtime OpenCL), LLVM/Clang, GCC și Binutils.
  • Este suportată simularea funcționării cipului folosind Verilator (simulator Verilog), RTLSIM (simularea RTL) și SimX (simulare software).

Printre modificările din versiunea Vortex 2.0:

  • Au fost efectuate optimizări ale microarhitecturii.
  • A fost adăugată suportul pentru arhitectura setului de instrucțiuni RISC-V 64-biți RV64IMAFD.
  • A fost adăugată posibilitatea de implementare pe baza FPGA Xilinx.
  • A fost adăugată suportul pentru LLVM 16 și Ubuntu 20.04.
  • A fost realizat un refactoring și corecturi ale defectelor identificate în evaluarea calității.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster