ĂshtĂ« publikuar versioni i projektit Vortex 2.2, i cili zhvillon GPGPU tĂ« hapur mbi bazĂ«n e arkitekturĂ«s sĂ« setit tĂ« instrukcioneve RISC-V, i dizenjuar pĂ«r tĂ« kryer llogaritje paralele pĂ«rmes API OpenCL dhe modelit tĂ« 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 GPU. Skemat, pĂ«rshkrimet e bllokave harduerike nĂ« gjuhĂ«n Verilog, simulatorĂ«t, driverat dhe dokumentacioni shoqĂ«rues i projektit shpĂ«rndahen nĂ«n licencĂ«n Apache 2.0.
Baza e GPGPU-së përbëhet nga një ISA tipik RISC-V, i zgjeruar me disa instruksione shtesë të nevojshme për të mbështetur funksionet e GPU-së dhe menaxhimin e rrjedhave. Ndryshimet në arkitekturën e setit të instrukcioneve RISC-V janë minimale dhe, kur është e mundur, përdoren instruksionet vektoriale tashmë të disponueshme. Ndër instrukcionet shtesë, mund të përmendim: «tex» për të përshpejtuar përpunimin e teksteve, vx_rast për menaxhimin e rasterizimit, 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 fronteve të instrukcioneve dhe rrjedhave në to (wavefront, grupi i fijeve që ekzekutohen paralelisht nga SIMD Engine), vx_split dhe vx_join.

GPGPU e zhvilluar mbështet arkitaturat e setit të instrukcioneve RISC-V 32- dhe 64-bit RV32IMF dhe RV64IMAFD, dhe mund të përfshijë memorie të ndarë opsionale, cache-ë të niveleve L1, L2 dhe L3, si dhe një numër të konfiguruar të bërthamave, grupeve të detyrave (warps) dhe rrjedhave. Për çdo bërthamë ofrohet gjithashtu mundësia e aktivizimit të një numri të konfiguruar të ALU, FPU, LSU dhe SFU. Për krijimin e prototipeve mund të përdoren FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 dhe Xilinx Versal VCK5000. Për simulimin e funksionit të çipit mund të përdoren Verilator (simulatori Verilog), RTLSIM (simulimi RTL) dhe SimX (simulimi softuerik).
Për zhvillimin e aplikacioneve ofrohet një instrumentar që përfshin variante të adaptuara për të punuar me Vortex, si PoCL (kompilatori dhe runtime OpenCL), LLVM/Clang, GCC dhe Binutils. Projekti mbështet specifikimin OpenCL 1.2 dhe përmes bartjes në OpenCL realizohet mbështetje për përfaqësimin e mesëm të shenjuesve SPIR-V. Për grafikën mbi teknologjitë Vortex zhvillohet GPU Skybox i hapur, që mbështet API-në grafike Vulkan. Prototipi Skybox, i krijuar mbi bazën e FPGA Altera Stratix 10 dhe që përfshin 32 bërthama (512 rrjedha), ka arritur një performancë mbushjeje prej 3.7 gigapiksel në sekondë (29.4 gigatransaksione në sekondë) në frekuencën 230 MHz.
Mes ndryshimeve në versionin Vortex 2.2:
- Shtuar API vx_spawn_taskgroups për ekzekutimin e bërthamave që mbështesin ekzekutimin segmentuar të detyrave 3D.
- Shtuar mbështetje për ZICOND, një zgjerim të arkitekturës së grupit të komandave RISC-V, që siguron ekzekutimin e kushteve të operacioneve pa degëzim.
- Kompilatori OpenCL është kaluar në planifikimin e ekzekutimit në nivelin e rrjedhave të veçanta (thread-level, çdo rrjedhë ekzekuton detyrën e saj pavarësisht nga rrjedhat e tjera), përveç grupeve të detyrave (warp-level), siç ishte më parë.
- Në OpenCL është shtuar mbështetje për JIT-kompilimin dhe bërthamat 64-bit.
- Implementuar mbështetje për ngarkimin dinamik të runtime Vortex.
- Ofruar dokumentacion i ri për konfigurimin e FPGA Xilinx.
- Inkuadruar testimin e sintezës së logjikës duke përdorur instrumentin Yosys.
- Në operacionet hierarkike flush dhe në modalitetin write-back është siguruar mbështetje për cache.
- Optimizuar shpejtësia e verifikimit të scoreboard dhe punës me operandët në nivelin e kalimeve të regjistrave (RTL, Register Transfer Level).
- Shtuar mbështetje për simulatorin e memories DRAM Ramulator 2.0.
- Kaluar në përdorimin e versioneve të reja Verilator 5.0 (simulator për SystemVerilog) dhe LLVM 18.0, si dhe përditësuar instrumentin mbi bazën e CentOS 7.9.
- Në vend të sistemit të integrimit të vazhdueshëm Travis CI, është angazhuar shërbimi GitHub CI.
Burimi: opennet.ru
