ĂshtĂ« publikuar njĂ« version i dytĂ« i projektit Vortex, qĂ« zhvillon njĂ« GPGPU tĂ« hapur mbi arkitekturĂ«n e setit tĂ« komandave RISC-V, e cila Ă«shtĂ« e destinuar pĂ«r ekzekutimin e llogaritjeve paralele duke pĂ«rdorur API OpenCL dhe modelin e ekzekutimit SIMT (Single Instruction, Multiple Threads). Projekti gjithashtu mund tĂ« pĂ«rdoret pĂ«r tĂ« zhvilluar kĂ«rkime nĂ« fushĂ«n e grafikĂ«s 3D dhe pĂ«r tĂ« zhvilluar arkitektura tĂ« reja GPU. Skemat, pĂ«rshkrimet e blloqeve harduerike nĂ« gjuhĂ«n Verilog, simulatori, drejtuesit dhe dokumentacioni pĂ«rkatĂ«s i projektit shpĂ«rndahen sipas licencĂ«s 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.

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.
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).
Ndër ndryshimet në versionin Vortex 2.0:
- ĂshtĂ« optimizuar mikroarkitektura.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n e komandave 64-bit RISC-V RV64IMAFD.
- ĂshtĂ« shtuar mundĂ«sia e implementimit mbi FPGA Xilinx.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r LLVM 16 dhe Ubuntu 20.04.
- ĂshtĂ« bĂ«rĂ« refaktorim dhe janĂ« bĂ«rĂ« korrigjime tĂ« mangĂ«sive tĂ« identifikuara gjatĂ« vlerĂ«simit tĂ« cilĂ«sisĂ«.
Burimi: opennet.ru
