Vortex 2.2, otvorený GPGPU na báze architektúry RISC-V, je k dispozícii.

Bolestný projekt Vortex 2.2, ktorý vyvíja otvorený GPGPU na báze architektúry sady príkazov RISC-V, určený na vykonávanie paralelných výpočtov pomocou API OpenCL a modelu vykonávania SIMT (Single Instruction, Multiple Threads). Projekt môžete tiež využiť pri výskumoch v oblasti 3D grafiky a pri vývoji nových architektúr GPU. Schémy, popisy hardvérových blokov v jazyku Verilog, simulátor, ovládače a sprievodná projektová dokumentácia sú distribuované pod licenciou Apache 2.0.

Základom GPGPU je typový ISA RISC-V, rozšírený o niektoré dodatočné inštrukcie potrebné na podporu funkcií GPU a riadenie tokov. Zmeny v architektúre sady príkazov RISC-V sú minimalizované a ak je to možné, využívajú sa už existujúce vektorové inštrukcie. Medzi dodatočnými inštrukciami môžeme spomenúť: „tex“ na zrýchlenie spracovania textúr, vx_rast na riadenie rastrejizácie, vx_rop na spracovanie fragmentov, hĺbky a priehľadnosti, vx_imadd na vykonanie operácie „násobiť a sčítať“, vx_wspawn, vx_tmc a vx_bar na aktiváciu vlákien inštrukcií a tokov v nich (wavefront, sada nití vykonávaných súčasne SIMD Engine), vx_split a vx_join.

Vortex 2.2, otvorený GPGPU na báze architektúry RISC-V, je k dispozícii.

Rozvíjaný GPGPU podporuje 32- a 64-bitové architektúry sady príkazov RISC-V RV32IMF a RV64IMAFD a môže obsahovať voliteľnú zdieľanú pamäť, vyrovnávacie pamäte úrovní L1, L2 a L3, ako aj prispôsobiteľný počet jadier, blokov úloh (warps) a tokov. Pre každé jadro je potom možné zapnúť prispôsobiteľný počet ALU, FPU, LSU a SFU. Na vytváranie prototypov je možné použiť FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 a Xilinx Versal VCK5000. Na simuláciu čipu môžu byť použité Verilator (Verilog simulátor), RTLSIM (RTL simulácia) a SimX (softvérová simulácia).

Na vývoj aplikácií je k dispozícii nástroj, ktorý zahŕňa prispôsobené varianty PoCL (kompilátor a runtime OpenCL) pre prácu so Vortex, LLVM/Clang, GCC a Binutils. Projekt podporuje špecifikáciu OpenCL 1.2 a cez preklad do OpenCL je realizovaná podpora medzivrstvy shaderov SPIR-V. Pre grafiku na technológiách Vortex sa vyvíja otvorený GPU Skybox, ktorý podporuje grafické API Vulkan. Prototyp Skybox, vyvinutý na základe FPGA Altera Stratix 10 a obsahujúci 32 jadier (512 vlákien), dosiahol pri frekvencii 230 MHz výkon plnenia 3.7 gigapixelov za sekundu (29.4 gigatransakcií za sekundu).

Medzi zmenami vo verzii Vortex 2.2:

  • Pridané API vx_spawn_taskgroups na spustenie jadier podporujúcich segmentované vykonávanie 3D úloh.
  • Pridaná podpora ZICOND, rozšírenia architektúry sady inštrukcií RISC-V, ktoré umožňuje podmienené vykonávanie operácií bez vetvenia.
  • Kompilátor OpenCL bol preložený na plánovanie vykonávania na úrovni jednotlivých vlákien (thread-level, každé vlákno vykonáva svoju úlohu nezávisle od ostatných vlákien), a nie na skupiny úloh (warp-level), ako bolo predtým.
  • Do OpenCL bola pridaná podpora JIT kompilácie a 64-bitových jadier.
  • Zrealizovaná podpora dynamického načítania Vortex runtime.
  • Navrhnutá nová dokumentácia na nastavenie FPGA Xilinx.
  • Zahŕňa testovanie syntézy logiky s použitím nástroja Yosys.
  • V hierarchických operáciách flush a v režime write-back je zabezpečená podpora cache.
  • Optimalizovaná rýchlosť overovania scoreboard a práce s operandmi na úrovni registrových prenosov (RTL, Register Transfer Level).
  • Pridaná podpora simulačného DRAM pamäte Ramulator 2.0.
  • Prechod na použitie nových verzií Verilator 5.0 (simulátor SystemVerilog) a LLVM 18.0, a taktiež aktualizovaný nástrojový základ na báze CentOS 7.9.
  • Namiesto systému kontinuálnej integrácie Travis CI bol nasadený servis GitHub CI.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster