Objavljena je druga verzija projekta Vortex, koji razvija otvoreni GPGPU temeljen na arhitekturi skupa instrukcija RISC-V, namijenjen paralelnim izračunima korištenjem OpenCL API-a i SIMT (Single Instruction, Multiple Threads) modela izvršavanja. Projekt se također može koristiti za istraživanje u području 3D grafike i razvoj novih GPU arhitektura. Šeme, opisi hardverskih modula na Verilog jeziku, simulator, drajveri i druga prateća projektna dokumentacija dostupni su pod Apache 2.0 licencom.
Osnova GPGPU-a je standardni ISA RISC-V, proširen nekim dodatnim instrukcijama potrebnim za podršku GPU funkcijama i upravljanje tokom. Pri tome su promjene u arhitekturi skupa instrukcija RISC-V svedene na minimum, a gdje je to moguće koriste se već postojeće vektorske instrukcije. Sličan pristup se primenjuje u projektu RV64X, koji također razvija otvoreni GPU zasnovan na RISC-V tehnologijama.

Za grafiku na tehnologijama Vortex razvija se otvoreni GPU Skybox, koji podržava grafički API Vulkan. Prototip Skybox, izrađen na bazi FPGA Altera Stratix 10 i uključuje 32 jezgre (512 niti), omogućio je postizanje performansi punjenja od 3,7 gigapikseli u sekundi (29,4 gigatransakcija u sekundi) pri brzini od 230 MHz. Ističe se da je ovo prvi otvoreni GPU s programskom i hardverskom realizacijom koja podržava Vulkan.
Glavne značajke Vortexa:
- Podrška za 32- i 64-bitne arhitekture skupa instrukcija RISC-V RV32IMF i RV64IMAFD.
- Prilagodiv broj jezgri, blokova zadataka (warps) i niti.
- Prilagodiv broj ALU, FPU, LSU i SFU za svako jezgro.
- Prilagodiva širina izdavanja cevovoda (pipeline issue width).
- Opcionalna deljena memorija i keševi nivoa L1, L2 i L3.
- Podrška za OpenCL 1.2 specifikaciju.
- Mogućnost implementacije na FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 i Xilinx Versal VCK5000.
- Proširene instrukcije: „tex“ za ubrzanje obrade tekstura, vx_rast za upravljanje rasterizacijom, vx_rop za obradu fragmenata, dubine i prozirnosti, vx_imadd za izvođenje operacije „množi i saberi“, vx_wspawn, vx_tmc i vx_bar za aktivaciju frontova instrukcija i niti u njima (wavefront, skup niti koje se paralelno izvršavaju SIMD Engine), vx_split i vx_join.
- Podrška za međureprezentaciju senčera SPIR-V ostvarena je kroz prevođenje u OpenCL.
- Za razvoj aplikacija nudi se alatni set, uključujući prilagođene verzije PoCL (kompajler i runtime OpenCL), LLVM/Clang, GCC i Binutils.
- Podržava simulaciju rada čipa koristeći Verilator (Verilog simulator), RTLSIM (RTL simulacija) i SimX (softverska simulacija).
Između promjena u verziji Vortex 2.0:
- Optimizacija mikroarhitekture je izvršena.
- Dodana podrška za 64-bitnu arhitekturu skupa instrukcija RISC-V RV64IMAFD.
- Omogućena implementacija na temelju FPGA Xilinx.
- Dodana podrška za LLVM 16 i Ubuntu 20.04.
- Provedena je refaktorizacija i ispravke nedostataka uočene tijekom ocjene kvalitete.
Izvor: opennet.ru
