Dostupan je izlazak projekta Vortex 3.0, koji razvija otvoreni GPGPU temeljen na arhitekturi skupa instrukcija RISC-V, usmjeren na izvođenje paralelnih izračuna koristeći OpenCL API i SIMT model izvršavanja (Single Instruction, Multiple Threads). Projekt se također može koristiti za istraživanje u području 3D grafike i razvoj novih GPU arhitektura. Schemi, opisi hardverskih blokova na Verilog jeziku, simulator, upravljački programi i prateća projektna dokumentacija distribuiraju se pod Apache 2.0 licencom.
Osnova GPGPU-a sastoji se od standardnog ISA RISC-V, proširenog dodatnim instrukcijama za podršku GPU funkcijama i upravljanju tokovima. Promjene u arhitekturi skupa instrukcija RISC-V svedene su na minimum, a gdje god je to moguće, koriste se postojeće vektorske instrukcije. Među dodatnim instrukcijama nalaze se: «tex» za ubrzavanje obrade tekstura; vx_rast za upravljanje rasterizacijom, vx_rop za obradu fragmenata, dubine i prozirnosti; vx_imadd za izvođenje operacije «pomnoži i zbroji»; vx_wspawn, vx_split, vx_join, vx_tmc i vx_bar za aktivaciju grupa tokova (wavefront), paralelno izvršenih SIMD Engineom.

Razvijeni GPGPU podržava 32- i 64-bitne arhitekture skupa instrukcija RISC-V RV32IMF i RV64IMAFD i može uključivati opcionalnu dijeljenu memoriju, L1, L2 i L3 razine keševa, kao i prilagodljiv broj jezgri, blokova zadataka (warps) i tokova. Za svaku jezgru predviđena je mogućnost uključivanja prilagodljivog broja ALU, FPU, LSU i SFU. Za izradu prototipa mogu se koristiti FPGA Xilinx i Altera, a za simulaciju rada čipa koristi se Verilator (Verilog simulator), RTLSIM (RTL simulacija) i SimX (softverska simulacija).
Za razvoj aplikacija nudi se alat koji uključuje prilagođene verzije PoCL-a (kompajler i runtime OpenCL) za rad s Vortexom, LLVM/Clang, GCC i Binutils. Projekt podržava OpenCL 1.2 specifikaciju i kroz prevođenje u OpenCL realizira podršku za međurezultat šupljih šejdera SPIR-V.
Među promjenama u Vortex 3.0:
- Dodana je hardverska grafička stog, uključujući blokove za rasterizaciju, preklapanje tekstura i spajanje izlaza (OM — Output Merger). Za Mesu, uz postojeći grafički stog i softverski rasterizator lavapipe, pripremljen je Vulkan upravljački program vortexpipe.
- Proširene su mogućnosti tensor jezgri, namijenjene ubrzavanju izvođenja modela strojnog učenja, u kojima je implementirana podrška za strukturnu rijetkost (structured sparsity) radi kompresije težinskih matrica.
- Implementirana je operacija WGMMA (warpgroup-level matrix multiplication) za množenje matrica u asinkronom režimu.
- Dodana je DXA (Data Transfer Acceleration) jedinica za ubrzanje prijenosa podataka iz globalne u lokalnu memoriju.
- Implementirana je nova arhitektura bazirana na procesoru komandi (CP, Command Processor) i hardverskom planerju računalnih jezgri (KMU — Kernel Management Unit), koja omogućava premještanje operacija raspodjele računalnih tokova izvan čipa.
- Predložena je nova runtime biblioteka koja radi u neblokirajućem režimu i pruža apstrakcije koje se prevode u hardverski asinkrono izvršene komande. Podržavaju se redovi, događaji, moduli i sinhronizacija bazirana na asinkronim barijerama s semantikom arrive/wait/event.
- Dodana je podrška za skraćene upute RISC-V (RVC).
- Implementirana je hardverska podrška za atomarne operacije (Hardware Atomics).
- Potpuno je preradio FPU i predloženi su novi blokovi množitelja (Wallace-tree, Folded-radix) i zbrajača (Kogge-Stone).
- Dodana je virtuelna memorija na bazi bloka za upravljanje memorijom (MMU) s podrškom za 32-bitnu arhitekturu virtuelnog adresiranja SV32.
- Podržava se RISC-V proširenje Zicond s implementacijom uvjetnih operacija.
- Integrirano je upravljanje taktnim signalima (clock gating).
- Implementirana je podrška za jezik HIP (Heterogeneous Interface for Portability) putem okvira chipStar, koji prevodi HIP u SPIR-V.
- Osigurana je potpuna integracija sa simulatorom GEM5 i dodana podrška za simulator SimX na TLM (Transaction-Level Modeling) arhitekturi.
- Dodana je podrška za alate Synopsys i Yosys za sintezu logike za proizvodnju čipova, kao i podrška za korištenje biblioteka standardnih elemenata ASAP7 (7nm), SAED14 (14nm) i NanGate (15nm).
- Referentni alati ažurirani su na LLVM 20 i POCL 7.0.
Izvor: opennet.ru
