A fost lansat Vortex 3.0, un GPGPU deschis bazat pe arhitectura RISC-V

Este disponibilă versiunea proiectului Vortex 3.0, care dezvoltă un GPGPU deschis bazat pe arhitectura setului de instrucțiuni RISC-V, destinat executării calculilor paralele utilizând API-ul OpenCL și modelul de execuție SIMT (Single Instruction, Multiple Threads). Proiectul poate fi utilizat, de asemenea, în cercetări în domeniul graficii 3D și în dezvoltarea unor noi arhitecturi GPU. Schemele, descrierile blocurilor hardware în Verilog, simulatorul, driverele și documentația asociată proiectului sunt distribuite sub licența Apache 2.0.

Baza GPGPU este formată dintr-un ISA RISC-V standard, extins cu instrucțiuni suplimentare pentru a susține funcțiile GPU și gestionarea fluxurilor. Schimbările în arhitectura setului de instrucțiuni RISC-V sunt minimizate, iar, unde este posibil, se utilizează instrucțiuni vectoriale 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 a realiza operațiunea „înmulțire și adunare”; vx_wspawn, vx_split, vx_join, vx_tmc și vx_bar pentru activarea grupurilor de fluxuri (wavefront), executate în paralel de SIMD Engine.

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ă, cache-uri L1, L2 și L3, precum și un număr configurabil de nuclee, blocuri de sarcini (warps) și fluxuri. În plus, pentru fiecare nucleu este prevăzută posibilitatea de a activa un număr configurabil de ALU, FPU, LSU și SFU. Pentru prototipare pot fi utilizate FPGA Xilinx și Altera, iar pentru simularea funcționării cipului se pot folosi Verilator (simulator Verilog), RTLSIM (simularea RTL) și SimX (simularea software).

Pentru dezvoltarea aplicațiilor se oferă un set de instrumente, inclusiv variante adaptate pentru lucru cu Vortex din PoCL (compiler și runtime OpenCL), LLVM/Clang, GCC și Binutils. Proiectul suportă specificația OpenCL 1.2 și prin translație în OpenCL se implementează suportul pentru reprezentarea intermediară a shader-elor SPIR-V.

Printre schimbările din Vortex 3.0:

  • A fost adăugat un stivă grafică hardware, care include blocuri pentru rasterizare, suprapunerea texturilor și fuziunea ieșirii (OM — Output Merger). Pentru Mesa, bazată pe stiva grafică realizată și rasterizatorul software lavapipe, a fost pregătit un driver Vulkan vortexpipe.
  • Capacitățile nucleului tensor au fost extinse, destinat accelerării execuției modelelor de învățare automată, în care este implementat suportul pentru sparsitate structurală (structured sparsity) pentru comprimarea matricelor de greutate.
  • A fost implementată operația WGMMA (înmulțirea matricelor la nivel warpgroup) pentru înmulțirea matricelor în mod asincron.
  • A fost adăugat motorul DXA (Accelerarea Transferului de Date) pentru a accelera transferul de date din memoria globală în memoria locală.
  • A fost implementată o nouă arhitectură bazată pe procesorul de comenzi (CP, Command Processor) și planificatorul hardware al nucleelor de calcul (KMU — Kernel Management Unit), permițând executarea operațiunilor de gestionare a fluxurilor de calcul pe chip.
  • A fost propusă o nouă bibliotecă runtime, care funcționează în mod neblocat și oferă abstractizări, traduse în comenzi hardware executate asincron. Sunt suportate cozi, evenimente, module și sincronizare bazată pe barierele asincrone cu semantica arrive/wait/event.
  • A fost adăugat suport pentru instrucțiuni scurte RISC-V (RVC).
  • A fost implementat suport hardware pentru operații atomice (Hardware Atomics).
  • FPU a fost complet reproiectat și au fost propuse noi blocuri de multiplicatori (Wallace-tree, Folded-radix) și adunători (Kogge-Stone).
  • A fost adăugat un stivă de memorie virtuală bazată pe blocul de control al memoriei (MMU) cu suport pentru arhitectura de adresare virtuală de 32 de biți SV32.
  • Suport pentru extensia RISC-V Zicond cu implementarea operațiunilor condiționale.
  • A fost integrat managementul frecvenței de clock (clock gating).
  • A fost implementat suport pentru limbajul HIP (Heterogeneous Interface for Portability) prin cadrul chipStar, care traduce HIP în SPIR-V.
  • A fost asigurată integrarea completă cu simulatorul GEM5 și a fost adăugat suport pentru simulatorul SimX pe arhitectura TLM (Transaction-Level Modeling).
  • A fost adăugat suport pentru uneltele Synopsys și Yosys pentru sintaza logică în producția de cipuri, precum și suport pentru utilizarea bibliotecilor de componente standard ASAP7 (7nm), SAED14 (14nm) și NanGate (15nm).
  • Setul de unelte de referință a fost actualizat la LLVM 20 și POCL 7.0.

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