Vortex 3.0 projekti väljaanne, mis arendab avatud GPGPU, mis põhineb RISC-V käsuaarhitektuuril, on nüüd saadaval. See on loodud paralleelsete arvutuste teostamiseks, kasutades OpenCL API-d ja SIMT (Single Instruction, Multiple Threads) täitmismodelli. Projekti saab kasutada ka 3D-graafika uurimisel ja uute GPU arhitektuuride arendamisel. Scheemid, riistvarakomponentide kirjeldused Verilog'i keeles, simulaator, draiverid ja sellega seotud projektdokumentatsioon on vabalt kättesaadavad Apache 2.0 litsentsi all.
GPGPU põhineb standardkäsuaarhitektuuril RISC-V, mida on laiendatud täiendavate käskudega GPU funktsioonide ja voogude juhtimise toetamiseks. RISC-V käsuaarhitektuuri muudatused on minimaalsetena ja kasutavad võimalikult palju juba olemasolevaid vektorikäsklusi. Täiendavad käsud hõlmavad: «tex» tekstuuride töötlemise kiirendamiseks; vx_rast rasteriseerimise juhtimiseks; vx_rop fragmentide, sügavuse ja transparentsuse töötlemiseks; vx_imadd «korrutamise ja liitmise» teostamiseks; vx_wspawn, vx_split, vx_join, vx_tmc ja vx_bar rühmade voogude (wavefront) aktiveerimiseks, mida teostatakse paralleelselt SIMD Engine'is.

Arendatav GPGPU toetab RISC-V RV32IMF ja RV64IMAFD käskude arhitektuure, nii 32-bitiseid kui ka 64-bitiseid, ning võib sisaldada valikulist jagatud mälu, L1, L2 ja L3 taseme puhvermälu, samuti kohandatavat tuumade, tööplokkide (warps) ja lõimede arvu. Iga tuuma jaoks on ette nähtud võimalus aktiveerida kohandatav arv ALU-sid, FPU-sid, LSU-sid ja SFU-sid. Prototüüpide loomiseks võivad kasutada Xilinx ja Altera FPGA-sid, samas kui kiibi töö simuleerimiseks kasutatakse Verilatorit (Verilog simulaator), RTLSIMi (RTL simulaator) ja SimX-i (tarkvaraline simuleerimine).
Rakenduste arendamiseks pakutakse tööriistu, mis hõlmavad Vortexiga töötamiseks kohandatud PoCL variante (OpenCL kompilaator ja runtime), LLVM/Clang, GCC ja Binutils. Projekt toetab OpenCL 1.2 spetsifikatsiooni ning vahendades OpenCL-i, on rakendatud SPIR-V shaderite vahevormi tugi.
Vortex 3.0 muudatuste hulgas:
- Lisatud riistvaraline graafikusteek, mis hõlmab plokke rasteriseerimiseks, tekstuuride katmiseks ja väljundi sulandumiseks (OM — Väljundi Koondamine). Mesa põhineb teostatud graafikusteekil ja tarkvarasel rasteriseerijal lavapipe, on valmistatud Vulkan draiver vortexpipe.
- Tensori tuuma võimalused on laienenud, et kiirendada masinõppe mudelite täitmist, kus on rakendatud struktuurse hõreduse toimetamiseks kaalu matriksite tihendamisel.
- On rakendatud WGMMA (warpgroup-level matrix multiplication) operatsioon, et asünkroonselt matrikseid korrutada.
- Lisatud on DXA (Data Transfer Acceleration) mootor, et kiirendada andmete edastamist globaalsete ja kohalike mälude vahel.
- On rakendatud uus arhitektuur, mis põhineb käskude protsessoril (CP, Command Processor) ja arvutuslike tuumade riistvaralisel planeerijal (KMU — Kernel Management Unit), mis võimaldab väljaspool kiipi teha arvutusvoogude haldamise toiminguid.
- Pakutav uus runtime-raamatukogu töötab mitteblokeerivas režiimis ja pakub abstraktsioone, mis tõlgendatakse riistvara asünkroonselt täidetavateks käsklusteks. Toetatakse järjekordi, sündmusi, mooduleid ja sünkroonimist asünkroonselt piisila talude alusel, mille semantika on arrive/wait/event.
- Lisatud on RISC-V (RVC) lühendatud käskude tugi.
- Rakendatud on riistvaraline toetus aatomtoimingutele (Hardware Atomics).
- FPU on täielikult ümber kujundatud ning pakutud on uued korrutuste plokid (Wallace-tree, Folded-radix) ja summatoreid (Kogge-Stone).
- Lisatud on virtuaalse mälu virn, mis põhineb mäluhalduri (MMU) plokil ning toetab 32-bitist virtuaalse aadressi arhitektuuri SV32.
- Toetatakse RISC-V laiendust Zicond, mis rakendab tingimusoperatsioone.
- Kellade sageduse juhtimine (clock gating) on integreeritud.
- Toetatakse HIP (Heterogeneous Interface for Portability) keelt chipStar raamistikus, mis tõlgib HIP-i SPIR-V-ks.
- Täielik integratsioon GEM5 simulaatoriga on tagatud ning TLM (Transaction-Level Modeling) arhitektuuril on lisatud SimX simulaatori tugi.
- Lisatud on Synopsys ja Yosys tööriistade tugi loogika sünteesimiseks kiipide tootmiseks ning standardelementide ASAP7 (7nm), SAED14 (14nm) ja NanGate (15nm) raamatukogude kasutamise tugi.
- Viidatud tööriistakomplekt on uuendatud versioonidele LLVM 20 ja POCL 7.0.
Allikas: opennet.ru
