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

A fost lansată versiunea 2.2 a proiectului Vortex, care dezvoltă un GPGPU bazat pe arhitectura setului de instrucțiuni RISC-V, destinat să execute calcule paralele utilizând API-ul OpenCL și modelul de execuție SIMT (Single Instruction, Multiple Threads). Proiectul poate fi de asemenea utilizat în cercetări în domeniul graficii 3D și în dezvoltarea de noi arhitecturi GPU. Schemele, descrierile blocurilor hardware în limbajul Verilog, simulatorul, driverele și documentația de proiect însoțitoare sunt distribuite sub licența Apache 2.0.

Fundamentul GPGPU-ului este un ISA RISC-V tipic, extins cu unele instrucțiuni suplimentare necesare pentru a sprijini funcțiile GPU și gestionarea firelor de execuție. Schimbările în arhitectura setului de instrucțiuni RISC-V sunt minime și utilizează, pe cât posibil, instrucțiuni vectoriale deja existente. Printre instrucțiunile suplimentare se numără: „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 efectuarea operației „înmulțește și adună”, vx_wspawn, vx_tmc și vx_bar pentru activarea fronturilor de instrucțiuni și firelor în acestea (wavefront, set de fire de execuție, executate simultan de SIMD Engine), vx_split și vx_join.

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

GPGPU-ul dezvoltat suportă arhitecturi de set de instrucțiuni RISC-V de 32 și 64 de biți RV32IMF și RV64IMAFD, și poate include memorie partajată opțională, memorii cache de nivelurile L1, L2 și L3, precum și un număr configurabil de nuclee, blocuri de sarcini (warps) și fire de execuție. Pentru fiecare nucleu, există posibilitatea de a activa un număr configurabil de ALU, FPU, LSU și SFU. FPGA-urile Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 și Xilinx Versal VCK5000 pot fi utilizate pentru prototipuri. Simulatorul de funcționare a cipului poate fi realizat cu Verilator (simulator Verilog), RTLSIM (simularea RTL) și SimX (simularea software).

Pentru dezvoltarea aplicațiilor, este oferit un set de instrumente, care include variantele adaptate pentru Vortex ale PoCL (compilatoare și runtime OpenCL), LLVM/Clang, GCC și Binutils. Proiectul susține specificația OpenCL 1.2, iar prin translație în OpenCL, suportul pentru reprezentația intermediară a shaderelor SPIR-V este implementat. Pentru grafică, pe tehnologiile Vortex, se 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), a permis, la o frecvență de 230 MHz, obținerea unei performanțe de 3.7 gigapixeli pe secundă (29.4 gigatranzacții pe secundă).

Printre modificările din versiunea Vortex 2.2:

  • A fost adăugat API-ul vx_spawn_taskgroups pentru a lansa nuclee care suportă executarea segmentată a sarcinilor 3D.
  • A fost adăugat suport pentru ZICOND, extensia arhitecturii setului de instrucțiuni RISC-V, care asigură executarea condiționată a operațiunilor fără ramificare.
  • Compilatorul OpenCL a fost actualizat pentru a planifica execuția la nivel de fire individuale (thread-level, fiecare fir executând sarcina sa independent de celelalte), în loc de grupuri de sarcini (warp-level), ca înainte.
  • În OpenCL a fost adăugat suport pentru compilarea JIT și pentru nuclee pe 64 de biți.
  • A fost implementat suportul pentru încărcarea dinamică a runtime-ului Vortex.
  • A fost propusă o nouă documentație pentru configurarea FPGA Xilinx.
  • A fost inclusă testarea sintezei logicii folosind instrumentarul Yosys.
  • În operațiunile ierarhice flush și în modul write-back a fost asigurat suportul pentru cache.
  • A fost optimizată viteza de verificare a scoreboard-ului și a lucrului cu operanzi la nivelul transferurilor de registre (RTL, Register Transfer Level).
  • A fost adăugat suport pentru simulatorul de memorie DRAM Ramulator 2.0.
  • A fost realizat trecerea la utilizarea versiunilor noi Verilator 5.0 (simulator SystemVerilog) și LLVM 18.0, precum și actualizarea instrumentarului bazat pe CentOS 7.9.
  • În locul sistemului de integrare continuă Travis CI, a fost utilizat serviciul GitHub CI.

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