Välja on antud Vortex 2.2 väljaanne, mis arendab avatud GPGPU RISC-V käsu arhiitektuuri ja on mõeldud töötlusprotsesside läbiviimiseks paralleelsetes arvutustes, kasutades OpenCL API-d ja SIMT (Single Instruction, Multiple Threads) täitmismudelit. Projekti saab kasutada ka 3D-graafika uurimisteks ja uute GPU arhitektuuride väljatöötamiseks. Skeemid, riistvara plokkide kirjeldused Verilog keeles, simulaator, draiverid ja seotud projektidokumendid on litsentseeritud Apache 2.0 alusel.
GPGPU aluseks on tüüpiline RISC-V ISA, mida on täiendatud mõningate lisainstruktsioonidega GPU funktsioonide toetamiseks ja voogude juhtimiseks. Muudatused RISC-V käsu arhiitektuuris on minimaalset, püüdes võimalusel kasutada juba olemasolevaid vektorinstruktsioone. Täiendavate instruktsioonide hulka kuuluvad: 'tex' tekstuuride töötlemise kiirendamiseks, vx_rast rasteriseerimise juhtimiseks, vx_rop fragmentide, sügavuse ja läbipaistvuse töötlemiseks, vx_imadd 'korrutamise ja liitmise' operatsiooni tegemiseks, samuti vx_wspawn, vx_tmc ja vx_bar käskude ja nende voogude (wavefront, samal ajal töötavad niidid SIMD Engine'is) aktiveerimiseks, vx_split ja vx_join.

Arendatav GPGPU toetab 32- ja 64-bitiseid RISC-V RV32IMF ja RV64IMAFD käsu arhiitektuure ning võib sisaldada valikulist jagatud mälu, L1, L2 ja L3 tasandi vahemältega ning kohandatava tuumade, tööplokkide (warps) ja voogude arvu. Iga tuuma jaoks on võimalik aktiveerida kohandatav arv ALU, FPU, LSU ja SFU. Prototüüpide loomiseks saab kasutada FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 ja Xilinx Versal VCK5000. Kiibi töö simuleerimiseks saab kasutada Verilatorit (Verilog simulaator), RTLSIM-i (RTL simuleerimine) ja SimX-i (programmiline simuleerimine).
Rakenduste arendamiseks on saadaval tööriistakomplekt, mis sisaldab Vortexile kohandatud PoCL (OpenCLi kompilaator ja runtime), LLVM/Clang, GCC ja Binutils variante. Projekt toetab OpenCL 1.2 spetsifikatsiooni ja vahendina OpenCLis on rakendatud SPIR-V shaderite vaheversiooni toetus. Vortexi tehnoloogiate jaoks arendatakse avatud GPU Skyboxi, mis toetab Vulkan graafilist API-d. Skyboxi prototüüp, mis on loodud Altera Stratix 10 FPGA baasil ja sisaldab 32 südamikku (512 lõime), saavutas 230 MHz sagedusel 3,7 gigapikslit sekundis (29,4 gigatehingut sekundis) renderdamise jõudluse.
Vortex 2.2 versiooni muudatused:
- Lisatud API vx_spawn_taskgroups, et käivitada südamikke, mis toetavad segmenteritud 3D-ülesannete täitmist.
- Lisatud ZICOND toetus, RISC-V käsu arhiitehtuuri laiendusele, mis tagab tingimusliku täitmise operatsioonide ilma hargnemiseta.
- OpenCLi kompilaator on muudetud, et planeerida täitmist individuaalsete lõimede tasandil (thread-level, iga lõng täidab oma ülesannet iseseisvalt teistest lõimedest), mitte ülesande gruppide (warp-level) tasandil, nagu varem.
- OpenCLis on lisatud JIT-kompileerimise ja 64-bitiste südamike toetus.
- Rakendatud Vortex runtime'i dünaamilise laadimise toetus.
- Pakutud uus dokumentatsioon Xilinxi FPGA seadistamiseks.
- Lisatud loogika sünteesi testimine Yosysi tööriistakomplekti abil.
- Hierarhilistes flush- ja write-back operatsioonides on tagatud läätse toetus.
- Optimeeritud on scoreboard-sertifitseerimise kiirus ja operaatorite töötlemine registrite ülekannete tasemel (RTL, Register Transfer Level).
- Lisatud DRAM-mälu simulaatori Ramulator 2.0 toetus.
- Tegustatud on üleminek uutele Verilator 5.0 (SystemVerilog simulaator) ja LLVM 18.0 versioonidele ning uuendatud tööriistakomplekti CentOS 7.9 põhjal.
- Travis CI pideva integreerimise süsteemi asemel on kasutusele võetud GitHub CI teenus.
Allikas: opennet.ru
