È disponibile Vortex 2.0, un GPGPU open-source basato sull'architettura RISC-V

È stata pubblicata la seconda edizione del progetto Vortex, che sviluppa un GPGPU open source basato sull'architettura del set di istruzioni RISC-V, progettato per l'esecuzione di calcoli paralleli utilizzando l'API OpenCL e il modello di esecuzione SIMT (Single Instruction, Multiple Threads). Il progetto può essere utilizzato anche per condurre ricerche nel campo della grafica 3D e per lo sviluppo di nuove architetture GPU. Schemi, descrizioni dei blocchi hardware in linguaggio Verilog, simulatori, driver e documentazione di progetto sono rilasciati sotto licenza Apache 2.0.

La base del GPGPU è costituita da un ISA RISC-V standard, espanso con alcune istruzioni aggiuntive necessarie per supportare le funzionalità della GPU e la gestione dei flussi. In questo modo, le modifiche all'architettura del set di istruzioni RISC-V sono ridotte al minimo e si cerca di utilizzare, quando possibile, le istruzioni vettoriali esistenti. Un approccio simile è impiegato nel progetto RV64X, che sviluppa anch'esso una GPU open source basata su tecnologie RISC-V.

È disponibile Vortex 2.0, un GPGPU open-source basato sull'architettura RISC-V

Per la grafica, si sta sviluppando il GPU Skybox open source basato sulla tecnologia Vortex, che supporta l'API grafica Vulkan. Il prototipo Skybox, realizzato su FPGA Altera Stratix 10 e dotato di 32 core (512 thread), ha raggiunto una performance di riempimento di 3,7 gigapixel al secondo (29,4 gigatransazioni al secondo) a una frequenza di 230 MHz. Si segnala che questo è il primo GPU open source con implementazione sia software che hardware che supporta Vulkan.

Caratteristiche principali di Vortex:

  • Supporto per architetture a 32 e 64 bit del set di istruzioni RISC-V RV32IMF e RV64IMAFD.
  • Numero configurabile di core, blocchi di lavoro (warps) e thread.
  • Numero configurabile di ALU, FPU, LSU e SFU per ogni core.
  • Larghezza di emissione del pipeline configurabile.
  • Memoria condivisa opzionale e cache di livelli L1, L2 e L3.
  • Supporto per la specifica OpenCL 1.2.
  • Possibilità di implementazione su FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 e Xilinx Versal VCK5000.
  • Istruzioni avanzate: «tex» per accelerare l'elaborazione delle texture, vx_rast per il controllo della rasterizzazione, vx_rop per la gestione dei frammenti, delle profondità e della trasparenza, vx_imadd per eseguire l'operazione «moltiplica e somma», vx_wspawn, vx_tmc e vx_bar per attivare i fronti delle istruzioni e i thread in essi (wavefront, insieme di thread, eseguiti in parallelo dal SIMD Engine), vx_split e vx_join.
  • Il supporto per la rappresentazione intermedia degli shader SPIR-V è realizzato tramite traduzione in OpenCL.
  • Per lo sviluppo di applicazioni è disponibile un toolkit che include varianti PoCL adattate per lavorare con Vortex (compilatore e runtime OpenCL), LLVM/Clang, GCC e Binutils.
  • È supportata la simulazione del funzionamento del chip utilizzando Verilator (simulatore Verilog), RTLSIM (simulazione RTL) e SimX (simulazione software).

Tra le modifiche nella versione Vortex 2.0:

  • È stata ottimizzata la microarchitettura.
  • È stato aggiunto il supporto per l'architettura a 64 bit del set di istruzioni RISC-V RV64IMAFD.
  • È stata aggiunta la possibilità di implementazione su FPGA Xilinx.
  • È stato aggiunto il supporto per LLVM 16 e Ubuntu 20.04.
  • È stato effettuato un refactoring e sono state apportate correzioni ai problemi riscontrati durante la valutazione della qualità.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster