ĂshtĂ« publikuar njĂ« edicion i ri i projektit Vortex, i cili zhvillon GPGPU tĂ« hapur mbi arkitekturĂ«n e setit tĂ« instruksioneve RISC-V, i cili Ă«shtĂ« i destinuar pĂ«r ekzekutimin e llogaritjeve paralelisht duke pĂ«rdorur API OpenCL dhe modelin e ekzekutimit SIMT (Single Instruction, Multiple Threads). Projekti gjithashtu mund tĂ« pĂ«rdoret pĂ«r hulumtime nĂ« fushĂ«n e grafikĂ«s 3D dhe pĂ«r zhvillimin e arkitekturave tĂ« reja tĂ« GPU-ve. Skemat, pĂ«rshkrimet e njĂ«sive harduerike nĂ« gjuhĂ«n Verilog, simulatori, drejtuesit dhe dokumentacioni projektues i shoqĂ«ruara shpĂ«rndahen nĂ«n licencĂ«n Apache 2.0.
Baza e GPGPU-së është ISA tipike RISC-V, e cila është zgjeruar me disa instruksione shtesë të nevojshme për mbështetje të funksioneve GPU dhe menaxhimit të rrjedhave. Ndryshimet në arkitekturën e setit të komandave RISC-V janë minimizuar dhe, kur është e mundur, përdoren instruksionet vektor të ekzistuara. Një qasje e ngjashme zbatohet në projektin RV64X, i cili gjithashtu zhvillon një GPU të hapur mbi teknologjitë RISC-V.

Karakteristikat kryesore të Vortex:
- Mbështetje për arkitekturën e setit të komandave RISC-V 32-bit RV32IMF dhe 64-bit RV64IMAFD.
- Numri i bërthamave, blloqeve të punës (warps) dhe rrjedhave është i personalizueshëm.
- Numri i ALU-ve, FPU-ve, LSU-ve dhe SFU-ve për çdo bërthamë është i personalizueshëm.
- Gjerësia e daljes së tubacionit (pipeline issue width) është e personalizueshme.
- Memorie e ndarë opcionale dhe cache të niveleve L1, L2 dhe L3.
- Mbështetje për specifikimin OpenCL 1.2.
- Mundësi realizimi mbi FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 dhe Xilinx Versal VCK5000.
- Instruksione të zgjeruara: «tex» për përshpejtimin e përpunimit të teksturave, vx_rast për menaxhimin e rastërizimit, vx_rop për përpunimin e fragmenteve, thellësisë dhe transparencës, vx_imadd për realizimin e operacionit «shumëzo dhe shto», vx_wspawn, vx_tmc dhe vx_bar për aktivizimin e fronteve të instruksioneve dhe rrjedhave në to (wavefront, grupi i fishqëve të ekzekutuar paralelisht nga SIMD Engine), vx_split dhe vx_join.
- Mbështetje për përfaqësimin ndërmjetës të shenjave SPIR-V është realizuar përmes translatimit në OpenCL.
- Për zhvillimin e aplikacioneve ofrohet një mjet, duke përfshirë variante të adaptuara për punë me Vortex të PoCL (kompilatori dhe runtime OpenCL), LLVM/Clang, GCC dhe Binutils.
- Mbështetet simullimi i funksionit të çipit duke përdorur Verilator (simulator Verilog), RTLSIM (simulim RTL) dhe SimX (simulim softuerik).
Për grafikën, teknologjia Vortex zhvillon një GPU të hapur Skybox, që mbështet API grafik Vulkan. Prototipi Skybox, i krijuar mbi FPGA Altera Stratix 10 dhe që përfshin 32 bërthama (512 rrjedha), arriti një performancë mbushjeje prej 3.7 gigapikselesh në sekondë (29.4 gigatranzakcione në sekondë) në një frekuencë prej 230 MHz. Vlen të theksohet se ky është GPU i parë i hapur me realizim programor dhe harduerik, që mbështet Vulkan.
Ndër ndryshimet në versionin Vortex 2.1:
- Shtohet API spawn_taskgroups për të nisur bërthamat që përdorin memorie lokale dhe mbështesin vendosjen e barrierave në memorie.
- ĂshtĂ« propozuar njĂ« zgjerim i ri pĂ«r krijimin e bĂ«rthamave tĂ« zhvendosshme (relocatable).
- Në API-në e menaxhimit të memories janë shtuar thirrjet vx_mem_reserve, vx_mem_access dhe vx_mem_address.
- Shtohet një API i ri runtime vx_check_occupancy.
- Një opsion është shtuar në drejtuesin për GPU për të verifikuar testet OpenCL në GPU lokale.
- Janë shtuar teste OpenCL që përdorin memorie lokale (psum, sgemm2, sgemm3).
- Janë shtuar libra libc dhe librt të adaptuar veçanërisht për Vortex.
- Mbështetje për bashkimin e blloqeve të memorie të lirë fqinj është shtuar (memory coalescing).
- ĂshtĂ« optimizuar mikroarkitektura.
- Një skenar i ri i ndërtimit është shtuar, i cili ndan skedarët burimorë nga katalogu i ndërtimit.
Burimi: opennet.ru
