RISC-V yra didelio populiarumo sulaukusi architektūra Pastaraisiais metais tai dėl atvirojo kodo (ISA) dizaino ir tai, priduriant, kad dėl savo lankstumo ir moduliškumo jis tapo viena iš svarbiausių procesoriaus architektūrų.
To dėka Buvo pradėti įvairūs projektai, pagrįsti RISC-V ir vienas iš jų yra Vortex, apie kurį šiandien kalbėsime čia, tinklaraštyje.
Kas yra „Vortex“ projektas?
Sūkurinis es projektas, kuris kuria GPGPU, paremtas RISC-V architektūra. Projektas skirtas lygiagrečiam skaičiavimui atlikti naudojant OpenCL API ir SIMT vykdymo modelį.
„Vortex GPGPU“ branduolys yra bendras RISC-V, kurioje buvo atlikti patobulinimai su kai kuriomis papildomomis instrukcijomis reikalingas GPU funkcionalumui palaikyti ir gijų valdymui. Tuo pačiu metu RISC-V instrukcijų rinkinio architektūros pakeitimai yra minimalūs ir, kai tik įmanoma, naudojamos esamos vektorinės instrukcijos. Panašus metodas naudojamas projekte RV64X, kuris taip pat kuria atvirą GPU, pagrįstą RISC-V technologijomis.
Kitas bruožas Vortex yra tas GPGPU turi išplėstines instrukcijas, tarp kurių yra: »tex“ tekstūros apdorojimui paspartinti, «vx_rast» rastravimui valdyti, «vx_rop» tvarkyti fragmentus, gylį ir skaidrumą, «vx_imadd» daugybos ir sudėties operacijoms atlikti, «vx_wspawn» , "vx_tmc" ir „vx_bar“, kad suaktyvintų komandų briaunas ir bangų frontus (gijų rinkinys, kurį lygiagrečiai vykdo SIMD variklis), „vx_split“ ir „vx_join“.
Iš c„Vortex“ pagrindinės savybės, kurios išsiskiria randama:
- 32 bitų ir 64 bitų RISC-V instrukcijų rinkinių architektūrų palaikymas: RV32IMF ir RV64IMAFD.
- Konfigūruojamas: Konfigūruojamas branduolių, užduočių blokų (metmenų) ir gijų skaičius.
- Apdorojimo blokas: Konfigūruojamas ALU, FPU, LSU ir SFU skaičius viename šerdyje.
- Išleidimo angos plotis: reguliuojamas vamzdžio išleidimo angos plotis.
- Atmintis: pasirenkama bendra atmintis ir L1, L2 ir L3 talpyklos.
- OpenCL 1.2 specifikacijų palaikymas.
- FPGA pagrindu sukurtas diegimas: galimybė įdiegti Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 ir Xilinx Versal VCK5000 FPGA.
- SPIR-V palaikymas: įdiegtas išvertus į OpenCL.
Kūrimo įrankiai: įrankių rinkinys, apimantis PoCL (OpenCL kompiliatoriaus ir vykdymo laiko), LLVM/Clang, GCC ir Binutils variantus, pritaikytus darbui su Vortex. - Lustų modeliavimas: palaikoma naudojant Verilator (Verilog simuliatorių), RTLSIM (RTL modeliavimą) ir SimX (programinės įrangos modeliavimą).
Skybox GPU
Neskaitant to, Vortex technologijomis paremtai grafikai kuriamas Skybox GPU atidaryti, kuri palaiko Vulkan grafikos API. Paminėta, kad „Skybox“ prototipas sukurtas „Altera Stratix 10 FPGA“ pagrindu ir apimantis 32 branduolius (512 gijų) 230 MHz dažniu. Reikėtų pažymėti, kad tai pirmasis atviras GPU, suderinamas su programine ir technine įranga su Vulkanu
Verta tai paminėti Šiuo metu Vortex projekto versija yra 2.1, kuris buvo neseniai išleistas ir buvo įgyvendinti svarbūs pakeitimai, tokie kaip: atminties sujungimo palaikymas (kuris dabar palaikomas), CSR instrukcijų apdorojimas buvo optimizuotas, perkrovimas optimizuotas, naujas konfigūracijos scenarijus, be kita ko:
- Pridėta branduolio APIpawn_taskgroups paleisti branduolius, kurie naudoja vietinę atmintį ir barjerus
- Naujas vykdymo laiko plėtinys, skirtas perkeliamiems branduolio dvejetainiams failams ir argumentams.
- Nauji vykdymo atminties API papildymai: vx_mem_reserve, vx_mem_access, vx_mem_address
- nauja vykdymo API vx_check_ocupancy
- Pridėta GPU tvarkyklės parinktis, norint išbandyti OpenCL testus vietiniame GPU (pvz., blackbox.sh –driver=gpu –app=sgemm)
- Pridėta OpenCL testai, kurie naudojami su vietine atmintimi (psum, sgemm2, sgemm3)
- Pridėtos tinkintos vortex libc ir librt bibliotekos su valdymo skirtumo instrumentais.
Jei norite sužinoti daugiau apie tai, turėtumėte žinoti, kad schemos, aparatūros blokų aprašymai Verilog kalba, simuliatorius, tvarkyklės ir pridedama projektinė dokumentacija yra platinami pagal Apache 2.0 licenciją. Išsamią informaciją galite patikrinti sekanti nuoroda.