ĂshtĂ« publikuar versioni i projektit Vortex 2.2, i cili zhvillon GPGPU tĂ« hapur tĂ« bazuar nĂ« arkitekturĂ«n e setit tĂ« instruksioneve RISC-V, i dizajnuar pĂ«r tĂ« realizuar llogaritje paralele duke pĂ«rdorur API-nĂ« OpenCL dhe modelin e ekzekutimit SIMT (Instruksion i VetĂ«m, MĂ« shumĂ« Thjesht). Projekti gjithashtu mund tĂ« pĂ«rdoret pĂ«r kĂ«rkime nĂ« fushĂ«n e grafikĂ«s 3D dhe pĂ«r zhvillimin e arkitekturave tĂ« reja tĂ« GPU. Skemat, pĂ«rshkrimet e blloqeve harduerike nĂ« gjuhĂ«n Verilog, simulatori, shoferĂ«t dhe dokumentacioni shoqĂ«rues i projektit shpĂ«rndahen nĂ«n licencĂ«n Apache 2.0.
GPGPU bazohet në ISA RISC-V standard, e zgjeruar me disa instruksione shtesë të nevojshme për mbështetje të funksioneve GPU dhe menaxhimin e rrjedhave. Ndryshimet në arkitekturën e setit të komandave RISC-V janë minimizuar dhe, kur është e mundur, përdoren instruksionet vektoriale ekzistuese. Mes instruksioneve shtesë, ndahen: «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 kryerjen e operacionit «shumëzo dhe shto», vx_wspawn, vx_tmc dhe vx_bar për aktivizimin e frontet e instruksioneve dhe rrjedhave të tyre (wavefront, grup dërrasash që ekzekutohen paralelisht nga SIMD Engine), vx_split dhe vx_join.

GPGPU i zhvilluar mbĂ«shtet arkitekturat 32- dhe 64-bit tĂ« komandave RISC-V RV32IMF dhe RV64IMAFD, dhe mund tĂ« pĂ«rfshijĂ« memorie tĂ« ndarĂ« opcionale, cache tĂ« niveleve L1, L2 dhe L3, si dhe njĂ« numĂ«r tĂ« personalizueshĂ«m bĂ«rthash, blloqesh pune (warps) dhe thread-ash. Ădo bĂ«rthamĂ« ofron mundĂ«sinĂ« pĂ«r aktivizimin e njĂ« numri tĂ« personalizuar ALU, FPU, LSU dhe SFU. FPGA-tĂ« Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 dhe Xilinx Versal VCK5000 mund tĂ« pĂ«rdoren pĂ«r krijimin e prototipave. PĂ«r simulimin e funksionimit tĂ« çipit mund tĂ« pĂ«rdoren Verilator (simulator Verilog), RTLSIM (simulim RTL) dhe SimX (simulim softuerik).
Për zhvillimin e aplikacioneve ofrohet një mjet, që përfshin variante të adaptuara për të punuar me Vortex PoCL (kompilatori dhe runtime OpenCL), LLVM/Clang, GCC dhe Binutils. Projekti mbështet specifikimin OpenCL 1.2 dhe përmes translacionit në OpenCL realizohet mbështetje për paraqitjen ndërmjetëse të shaderave SPIR-V. Për grafikat mbi teknologjitë Vortex po zhvillohet GPU Skybox i hapur, që mbështet API-grafik Vulkan. Prototipi Skybox, i krijuar mbi bazën e FPGA Altera Stratix 10 dhe që përfshin 32 bërthama (512 rrjedha), arriti një performancë të mbushjes prej 3.7 gigapikselëve në sekondë (29.4 gigatraksione në sekondë) me një frekuencë prej 230 MHz.
Mes ndryshimeve në versionin Vortex 2.2:
- E shtuar API vx_spawn_taskgroups për të nisur bërthamat që mbështesin ekzekutimin e segmentuar të detyrave 3D.
- E shtuar mbështetje për ZICOND, një zgjerim të arkitekturës së grupit të komandave RISC-V që mundëson ekzekutimin e kushteve të operacioneve pa degëzim.
- Kompilatori OpenCL është transferuar në planifikimin e ekzekutimit në nivelin e rrjedhave të veçanta (thread-level, çdo rrjedhë ekzekuton detyrën e saj në mënyrë të pavarur nga rrjedhat e tjera), në vend të grupeve të detyrave (warp-level), siç ishte më parë.
- Në OpenCL është shtuar mbështetje për JIT-kompilimin dhe bërthamat 64-bit.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r ngarkimin dinamik tĂ« Vortex runtime.
- ĂshtĂ« propozuar dokumentacioni i ri pĂ«r konfigurimin e FPGA Xilinx.
- ĂshtĂ« pĂ«rfshirĂ« testimi i sintezĂ«s sĂ« logjikĂ«s duke pĂ«rdorur mjetet Yosys.
- Në operacionet hierarkike flush dhe në modalitetin write-back është siguruar mbështetje për cache.
- ĂshtĂ« optimizuar shpejtĂ«sia e verifikimit tĂ« scoreboard-it dhe punĂ«s me operandĂ«t nĂ« nivelin e transferimeve tĂ« regjistrit (RTL, Register Transfer Level).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r simulatorin e memories DRAM Ramulator 2.0.
- ĂshtĂ« realizuar kalimi nĂ« pĂ«rdorimin e versioneve tĂ« reja Verilator 5.0 (simulator i SystemVerilog) dhe LLVM 18.0, si dhe Ă«shtĂ« pĂ«rditĂ«suar ariçka bazuar nĂ« CentOS 7.9.
- Në vend të sistemit të integrimit të vazhdueshëm Travis CI, është aktivizuar shërbimi GitHub CI.
Burimi: opennet.ru
