Avaldatud on uus Vortex projekti versioon, mis arendab avatud GPGPU RISC-V kÀsuarsenali pÔhjal, mis on mÔeldud paralleelsete arvutuste teostamiseks OpenCL API ja SIMT (Single Instruction, Multiple Threads) tÀitmisvÔtte mudeli abil. Projekti saab kasutada ka 3D-graafika uurimiseks ja uute GPU arhitektuuride arendamiseks. Skeemid, seadmete plokkide kirjeldused Verilog keeles, simulaator, draiverid ja projektiga seotud dokumentatsioon on saadaval Apache 2.0 litsentsi all.
GPGPU aluseks on RISC-V tĂŒĂŒpiline ISA, millele on lisatud mĂ”ned tĂ€iendavad kĂ€sud, mis on vajalikud GPU funktsioonide ja voogude juhtimise toetamiseks. Samuti on RISC-V kĂ€suarsenali arhitektuuri muutused viidud miinimumini ja kasutada on pĂŒĂŒtud vĂ”imalikult palju juba olemasolevaid vektorkĂ€ske. Sarnast lĂ€henemist kasutatakse projektis RV64X, mis arendab samuti avatud GPU RISC-V tehnoloogiate pĂ”hjal.

Vortexi pÔhiomadused:
- Toetatakse 32- ja 64-bitiseid RISC-V kÀskude komplekti arhidektuure RV32IMF ja RV64IMAFD.
- Kohandatav arvu tuumasid, ĂŒlesande plokke (warps) ja vooge.
- Iga sĂŒdamiku jaoks konfigureeritav ALU, FPU, LSU ja SFU arv.
- Konfigureeritav konveierite laius (pipeline issue width).
- Valikuline jagatud mÀlu ja L1, L2 ning L3 taseme kiibid.
- Toetatud OpenCL 1.2 spetsifikatsioon.
- FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 ja Xilinx Versal VCK5000 baasil realiseerimise vÔimalus.
- Laienenud juhised: 'tex' tekstuuride töötlemise kiirendamiseks, vx_rast rasteriseerimise haldamiseks, vx_rop fragmentide, sĂŒgavuse ja lĂ€bipaistvuse töötlemiseks, vx_imadd 'korruta ja liida' toimingu tegemiseks, vx_wspawn, vx_tmc ja vx_bar instruktsioonide ja voogude (wavefront, kiud, mis tĂ€idavad paralleelselt SIMD Engine) aktiveerimiseks, vx_split ja vx_join.
- Shaderite SPIR-V vaheesituse tugi on ellu viidud OpenCL-i tÔlkimise kaudu.
- Rakenduste arendamiseks on ette nÀhtud tööriistakomplekt, mis sisaldab Vortexiga töötamiseks kohandatud PoCL variantide (OpenCL kompilaator ja runtime), LLVM/Clang, GCC ja Binutils.
- Toetatakse jÀrgmise simulatsiooni valmistamist: Verilator (Verilog-simulaator), RTLSIM (RTL simulatsioon) ja SimX (tarkvarasimuatsioon).
Vortexi tehnikatel pĂ”hinev avatud GPU Skybox toetab graafikate API-d Vulkan. Altera Stratix 10 FPGA-l pĂ”hinev Skybox prototĂŒĂŒp, millel on 32 tuuma (512 niiti), saavutas 230 MHz tööfrequenst 3,7 gigapikslit sekundis (29,4 gigatehingut sekundis) tĂ€itmiskiirusel. TĂ”stetakse esile, et see on esimene avatud GPU, mis toetab Vulkanit nii tarkvara kui ka riistvara rakenduste kaudu.
Vortex 2.1 versioonis on toimunud jÀrgmised muutused:
- Lisatud API spawn_taskgroups tuumade kÀivitamiseks, mis kasutavad lokaalset mÀlu ja toetavad mÀlu barjÀÀride seadmist.
- Pakutud uus laiendus, mis vĂ”imaldab luua ĂŒmberpaigutatavaid binaarseid tuumi.
- MÀlu juhtimise API-s on lisatud vÀljakutsed vx_mem_reserve, vx_mem_access ja vx_mem_address.
- Lisatud uus runtime API vx_check_occupancy.
- GPU draiverisse on lisatud valik OpenCL-testide kontrollimiseks lokaalsel GPU-l.
- Lisatud OpenCL testid, mis kasutavad lokaalset mÀlu (psum, sgemm2, sgemm3).
- Vortexile kohandatud versioonid libc ja librt raamatutest on lisatud.
- Lisatud toetus kÔrvalasuvate vabade mÀlu blokkide liitmiseks (memory coalescing).
- Mikroarhitektuuri on optimeeritud.
- Lisatud uus koostamisskript, mis eraldab lÀhtefailid koostamiskataloogist.
Allikas: opennet.ru
