Lëshimi i projektit Vortex 3.0 është tani në dispozicion, që zhvillon GPGPU mbi arkitekturën e setit të komandave RISC-V, i dizenjuar për ekzekutimin e llogaritjeve paralel me përdorimin e API OpenCL dhe modelit të ekzekutimit SIMT (Instruksion i Vetëm, Shumë Threads). 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 njësive harduerike në gjuhën Verilog, simuluesi, drejtuesit dhe dokumentacioni i përcjellshëm i projektit shpërndahen nën licencën Apache 2.0.
Baza e GPGPU përbëhet nga ISA tipike RISC-V, e zgjeruar me instruksione shtesë për mbështetje të funksioneve GPU dhe menaxhimin e flukseve. Ndryshimet në arkitekturën e setit të komandave RISC-V janë minimizuar dhe nëse është e mundur, janë përdorur instruksionet vektoriale ekzistuese. Ndër instruksionet shtesë janë: '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 ekzekutimin e operacionit 'shumëzo dhe shto'; vx_wspawn, vx_split, vx_join, vx_tmc dhe vx_bar për aktivizimin e grupeve të flukseve (wavefront) që ekzekutohen paralelisht nga SIMD Engine.

GPGPU i zhvilluar mbështet arkitekturën e setit të komandave RISC-V RV32IMF dhe RV64IMAFD me 32 dhe 64 bit, dhe mund të përfshijë memori të ndarë opsionale, këshilla të nivelit L1, L2 dhe L3, si dhe një numër të konfiguruar të bërthamave, bllokave të detyrave (warps) dhe flukseve. Në përputhje me këtë, për çdo bërthamë ofrohet mundësia për të aktivizuar një numër të konfiguruar të ALU, FPU, LSU dhe SFU. Për krijimin e prototipave mund të përdoren FPGA Xilinx dhe Altera, ndërsa për simulimin e funksionimit të çipit përdoren Verilator (simulues Verilog), RTLSIM (simulim RTL) dhe SimX (simulim programatik).
Për zhvillimin e aplikacioneve ofrohet një mjete, duke përfshirë variante të adaptuara për përdorim me Vortex si PoCL (kompiluesi dhe runtime OpenCL), LLVM/Clang, GCC dhe Binutils. Projekti mbështet specifikimin OpenCL 1.2 dhe përmes transformimit në OpenCL realizohet mbështetje për përfaqësimin e ndërmjetëm të shenjuesve SPIR-V.
Ndër ndryshimet në Vortex 3.0:
- U shtua një grackë grafike harduerike, e cila përfshin blloket për rasterizimin, mbivendosjen e teksteve dhe bashkimin e daljes (OM - Bashkimi i Daljes). Për Mesa, bazuar në grackën grafike të realizuar dhe rasterizuesin programatik lavapipe, është përgatitur drejtuesi Vulkan vortexpipe.
- Janë zgjeruar funksionet e bërthamës tensor, e destinuar për të përshpejtuar ekzekutimin e modeleve të mësimit të makinerive, e cila implementon mbështetje për rrallëshmërinë strukturore (structured sparsity) për kompresimin e matricave të peshave.
- ĂshtĂ« realizuar operacioni WGMMA (shumĂ«zimi i matricave nĂ« nivel warpgroup) pĂ«r shumzimin e matricave nĂ« njĂ« mod tĂ« asinkronshĂ«m.
- ĂshtĂ« shtuar motori DXA (Accelerimi i Transferimit tĂ« tĂ« DhĂ«nave) pĂ«r tĂ« pĂ«rshpejtuar transferimin e tĂ« dhĂ«nave nga memoria globale nĂ« atĂ« lokale.
- ĂshtĂ« realizuar njĂ« arkitekturĂ« e re mbi bazĂ«n e procesorit tĂ« komandave (CP, Command Processor) dhe planifikuesit tĂ« harduerit pĂ«r njĂ«sitĂ« e llogaritjes (KMU â Kernel Management Unit), qĂ« lejon tĂ« çlirohen operacionet e dispeçimit tĂ« flukseve tĂ« llogaritjes nĂ« anĂ«n e çipit.
- ĂshtĂ« propozuar njĂ« runtime-bibliotekĂ« e re qĂ« punon nĂ« njĂ« mod tĂ« pa bllokuar dhe ofron abstraksione qĂ« pĂ«rkthehen nĂ« komanda tĂ« ekzekutueshme asinkrone nĂ« harduer. MbĂ«shteten radhĂ«t, ngjarjet, modulat dhe sinkronizimi mbi bazĂ«n e barrierave asinkrone me semantikĂ«n arrive/wait/event.
- Janë shtuar mbështetje për instruksionet e shkurtra RISC-V (RVC).
- ĂshtĂ« realizuar mbĂ«shtetje harduerike pĂ«r operacione atomike (Hardware Atomics).
- FPU është ripërshtatur plotësisht dhe janë propozuar blloqe të reja shumzuesish (Wallace-tree, Folded-radix) dhe shumatorësh (Kogge-Stone).
- ĂshtĂ« shtuar njĂ« grumbull virtual i memories mbi bazĂ«n e bllokut tĂ« menaxhimit tĂ« memories (MMU) me mbĂ«shtetje pĂ«r arkitekturĂ«n 32-bit tĂ« adresimit virtual SV32.
- Mbështetje për zgjerimin RISC-V Zicond me realizimin e operacioneve të kushtëzuara.
- ĂshtĂ« integruar menaxhimi i frekuencĂ«s sĂ« orĂ«s (clock gating).
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r gjuhĂ«n HIP (Heterogeneous Interface for Portability) pĂ«rmes framework-ut chipStar, qĂ« pĂ«rkthen HIP nĂ« SPIR-V.
- ĂshtĂ« siguruar integrim i plotĂ« me simulatorin GEM5 dhe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r simulatorin SimX nĂ« arkitekturĂ«n TLM (Modelimi nĂ« Nivel Transaksioni).
- Janë shtuar mbështetje për mjetet Synopsys dhe Yosys për sintesën e logjikës për prodhimin e çipave, si dhe mbështetje për përdorimin e bibliotekave të elementeve standarde ASAP7 (7nm), SAED14 (14nm) dhe NanGate (15nm).
- Seti standard i mjeteve është përditësuar në LLVM 20 dhe POCL 7.0.
Burimi: opennet.ru
