Disponibile Vortex 2.2, GPGPU open-source basato su architettura RISC-V

È stato pubblicato il rilascio del progetto Vortex 2.2, 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 sviluppare nuove architetture GPU. Gli schemi, le descrizioni dei blocchi hardware in Verilog, il simulatore, i driver e la documentazione di progetto associata vengono distribuiti sotto licenza Apache 2.0.

La base del GPGPU è un'architettura ISA RISC-V standard, estesa con alcune istruzioni aggiuntive necessarie per supportare le funzioni GPU e la gestione dei flussi. Le modifiche all'architettura del set di istruzioni RISC-V sono minime e sfruttano, quando possibile, le istruzioni vettoriali già esistenti. Tra le istruzioni aggiuntive si possono notare: "tex" per accelerare l'elaborazione delle texture, vx_rast per la gestione della rasterizzazione, vx_rop per l'elaborazione dei frammenti, della profondità e della trasparenza, vx_imadd per eseguire l'operazione di "moltiplica e somma", vx_wspawn, vx_tmc e vx_bar per attivare i fronti delle istruzioni e i flussi in essi (wavefront, insieme di thread eseguiti in parallelo dal SIMD Engine), vx_split e vx_join.

Disponibile Vortex 2.2, GPGPU open-source basato su architettura RISC-V

Il GPGPU sviluppato supporta le architetture a 32 e 64 bit del set di istruzioni RISC-V RV32IMF e RV64IMAFD, e può includere memoria condivisa opzionale, cache di livello L1, L2 e L3, nonché un numero personalizzabile di core, blocchi di task (warps) e thread. Inoltre, per ogni core è prevista la possibilità di attivare un numero personalizzabile di ALU, FPU, LSU e SFU. Per la prototipazione possono essere utilizzati FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 e Xilinx Versal VCK5000. Per la simulazione del funzionamento del chip possono essere utilizzati Verilator (simulatore Verilog), RTLSIM (simulazione RTL) e SimX (simulazione software).

Per lo sviluppo di applicazioni è fornito un toolkit che include versioni adattate per lavorare con Vortex di PoCL (compilatore e runtime OpenCL), LLVM/Clang, GCC e Binutils. Il progetto supporta la specifica OpenCL 1.2 e attraverso la traduzione in OpenCL è implementato il supporto per la rappresentazione intermedia degli shader SPIR-V. Per la grafica basata su tecnologie Vortex, si sta sviluppando un GPU Skybox open source, che supporta il API grafico Vulkan. Il prototipo di Skybox, realizzato su base FPGA Altera Stratix 10 e dotato di 32 core (512 thread), ha raggiunto una velocità di riempimento di 3.7 gigapixel al secondo (29.4 gigatransazioni al secondo) alla frequenza di 230 MHz.

Tra le novità della versione Vortex 2.2:

  • Aggiunto l'API vx_spawn_taskgroups per avviare i core che supportano l'esecuzione segmentata delle attività 3D.
  • Aggiunto il supporto per ZICOND, un'estensione dell'architettura del set di istruzioni RISC-V che consente l'esecuzione condizionale delle operazioni senza ramificazione.
  • Il compilatore OpenCL è stato adattato per la pianificazione dell'esecuzione a livello di singoli thread (thread-level, ogni thread esegue il proprio compito indipendentemente dagli altri thread) anziché di gruppi di attività (warp-level), come avveniva prima.
  • In OpenCL è stata aggiunta la supporto per la compilazione JIT e per i core a 64 bit.
  • È stata implementata la supporto per il caricamento dinamico del runtime Vortex.
  • È stata proposta una nuova documentazione per la configurazione di FPGA Xilinx.
  • È incluso il test di sintesi logica utilizzando gli strumenti Yosys.
  • Nelle operazioni gerarchiche flush e nella modalità write-back è supportata la cache.
  • È stata ottimizzata la velocità di verifica del scoreboard e la gestione degli operandi a livello di trasferimenti di registro (RTL, Register Transfer Level).
  • È stata aggiunta la supporto per il simulatore di memoria DRAM Ramulator 2.0.
  • È avvenuto il passaggio all'uso delle nuove versioni di Verilator 5.0 (simulatore SystemVerilog) e LLVM 18.0, e gli strumenti basati su CentOS 7.9 sono stati aggiornati.
  • È stato utilizzato il servizio GitHub CI al posto del sistema di integrazione continua Travis CI.

Fonte: opennet.ru

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