E publikua redaksioni i dytë i projektit Vortex, i cili zhvillon GPGPU të hapur mbi arkitekturën e setit të komandave RISC-V, i orientuar për të kryer llogaritje paralelesh duke përdorur API OpenCL dhe modelin e ekzekutimit SIMT (Instruksion i Vetëm, Disa Threads). Projekti gjithashtu mund të përdoret në kërkime në fushën e grafikës 3D dhe në zhvillimin e arkitekturave të reja GPU. Skemat, përshkrimet e blloqeve harduerike në gjuhën Verilog, simulatori, drivarët dhe dokumentacioni i shoqëruar i projektit shpërndahen nën licencën Apache 2.0.
Baza e GPGPU përbëhet nga një ISA tipike RISC-V, e zgjeruar me disa instruksione shtesë, të nevojshme për të mbështetur funksionet e GPU dhe menaxhimin e rrjedhave. Në të njëjtën kohë, ndryshimet në arkitekturën e setit të komandave RISC-V janë minimizuar dhe në maksimum shfrytëzohen instrukcionet vektoriale që ekzistojnë tashmë. Një qasje e ngjashme aplikohet në projektin RV64X, i cili gjithashtu zhvillon një GPU të hapur mbi teknologjitë RISC-V.

Për grafikën mbi teknologjitë Vortex zhvillohet një GPU i hapur Skybox, që mbështet API-në grafike Vulkan. Prototipi Skybox, i ndërtuar mbi FPGA Altera Stratix 10 dhe që përfshin 32 bërthama (512 rrjedha), arriti një performancë të mbushjes prej 3.7 gigapikseleve në sekondë (29.4 gigatranzaktime në sekondë) në një frekuencë prej 230 MHz. Vlen të theksohet se ky është GPU-i i parë i hapur me realizim softuerik dhe harduerik, që mbështet Vulkan.
Karakteristikat kryesore të Vortex:
- Mbështetje për arkitekturën e komandave RISC-V 32 dhe 64 bit RV32IMF dhe RV64IMAFD.
- Numri i konfiгuruar i bërthamave, blloqeve të detyrës (warps) dhe rrjedhave.
- Numri i konfiguruar i ALU, FPU, LSU dhe SFU për secilën bërthamë.
- Gjerësia e lëshimit të konfigurueshëm të tubave (pipeline issue width).
- Memorie dhe cache të niveleve të ndara L1, L2 dhe L3, në opsion.
- Mbështetje për specifikimin OpenCL 1.2.
- Mundësia e implementimit 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 rasterizimit, vx_rop për përpunimin e fragmenteve, thellësisë dhe transparencës, vx_imadd për kryerjen e operacioneve «shumëzimi dhe shtimi», vx_wspawn, vx_tmc dhe vx_bar për aktivizimin e frontëve të instruksioneve dhe rrjedhave në to (wavefront, grup i fijesh të ekzekutueshme për SIMD Engine), vx_split dhe vx_join.
- Mbështetje për përfaqësimin e ndërmjetëm të shader-eve SPIR-V është realizuar përmes transmisionit në OpenCL.
- Për zhvillimin e aplikacioneve ofrohet një set mjetesh, duke përfshirë versionet e adaptuara të PoCL (kompilatori dhe runtime OpenCL), LLVM/Clang, GCC dhe Binutils.
- Mbështetet simulimi i punës së çipit duke përdorur Verilator (simuluesi Verilog), RTLSIM (simulimi RTL) dhe SimX (simulimi softuerik).
Ndër ndryshimet në versionin Vortex 2.0:
- Optimizuar mikroarkitektura.
- Supozohet mbështetje për arkitekturën e setit të komandave 64-bit RISC-V RV64IMAFD.
- Shtohet mundësia e implementimit mbi FPGA Xilinx.
- Supozohet mbështetje për LLVM 16 dhe Ubuntu 20.04.
- ĂshtĂ« realizuar refaktorim dhe janĂ« bĂ«rĂ« korrigjime pĂ«r problemet e identifikuara gjatĂ« vlerĂ«simit tĂ« cilĂ«sisĂ«.
Burimi: opennet.ru
