È stata pubblicata Vortex 3.0, un GPGPU open source basato sull'architettura RISC-V

È disponibile il rilascio del progetto Vortex 3.0, che sviluppa un GPGPU basato sull'architettura del set di istruzioni RISC-V, progettato per eseguire calcoli paralleli utilizzando l'API OpenCL e il modello di esecuzione SIMT (Single Instruction, Multiple Threads). Il progetto può essere utilizzato anche per la ricerca nel campo della grafica 3D e per lo sviluppo di nuove architetture GPU. Gli schemi, le descrizioni dei blocchi hardware in linguaggio Verilog, il simulatore, i driver e la documentazione del progetto sono distribuiti sotto la licenza Apache 2.0.

La base del GPGPU è costituita da un ISA RISC-V standard, ampliato con istruzioni aggiuntive per supportare le funzionalità GPU e la gestione dei flussi. Le modifiche all'architettura del set di istruzioni RISC-V sono state ridotte al minimo e, quando possibile, vengono utilizzate le istruzioni vettoriali già esistenti. Tra le istruzioni aggiuntive ci sono: «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 «moltiplica e somma»; vx_wspawn, vx_split, vx_join, vx_tmc e vx_bar per attivare gruppi di flussi (wavefront) eseguiti in parallelo dal SIMD Engine.

Il GPGPU in fase di sviluppo supporta le architetture a 32 e 64 bit del set di istruzioni RISC-V RV32IMF e RV64IMAFD, e può includere una memoria condivisa opzionale, cache di livello L1, L2 e L3, nonché un numero configurabile di core, blocchi di lavoro (warps) e flussi. Ogni core prevede la possibilità di abilitare un numero configurabile di ALU, FPU, LSU e SFU. Per creare prototipi possono essere utilizzati FPGA Xilinx e Altera, mentre per simulare il funzionamento del chip si possono impiegare Verilator (simulatore Verilog), RTLSIM (simulazione RTL) e SimX (simulazione software).

Per lo sviluppo di applicazioni viene 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 tramite traduzione in OpenCL è attuata la compatibilità con la rappresentazione intermedia degli shader SPIR-V.

Tra le novità di Vortex 3.0:

  • È stato aggiunto uno stack grafico hardware, comprensivo di blocchi per la rasterizzazione, l'applicazione di texture e la fusione dell'output (OM - Output Merger). Per Mesa, basato sullo stack grafico implementato e sul rasterizzatore software lavapipe, è stato preparato un driver Vulkan chiamato vortexpipe.
  • Le capacità del nucleo tensoriale, progettato per accelerare l'esecuzione dei modelli di apprendimento automatico, sono state ampliate, implementando il supporto per la sparsità strutturale (structured sparsity) per la compressione delle matrici pesate.
  • È stata implementata l'operazione WGMMA (moltiplicazione matriciale a livello di warpgroup) per la moltiplicazione delle matrici in modalità asincrona.
  • È stato aggiunto il motore DXA (Accelerazione del Trasferimento Dati) per velocizzare il trasferimento di dati dalla memoria globale a quella locale.
  • È stata realizzata una nuova architettura basata sul processore di comandi (CP, Command Processor) e su uno scheduler hardware delle unità computazionali (KMU — Kernel Management Unit), che permette di spostare le operazioni di dispatching dei flussi computazionali al di fuori del chip.
  • È stata proposta una nuova libreria runtime che opera in modalità non bloccante e fornisce astrazioni tradotte in comandi hardware eseguibili in modo asincrono. Supporta code, eventi, moduli e sincronizzazione basata su barriere asincrone con semantica arrive/wait/event.
  • È stata aggiunta la supporto per le istruzioni abbreviate RISC-V (RVC).
  • È stato implementato il supporto hardware per le operazioni atomiche (Hardware Atomics).
  • L'FPU è stato completamente riprogettato e sono stati proposti nuovi blocchi moltiplicatori (Wallace-tree, Folded-radix) e sommatori (Kogge-Stone).
  • È stato aggiunto uno stack di memoria virtuale basato su un'unità di controllo della memoria (MMU) con supporto per l'architettura di indirizzamento virtuale a 32 bit SV32.
  • Supporto per l'estensione Zicond di RISC-V con implementazione delle operazioni condizionali.
  • È stata integrata la gestione della frequenza di clock (clock gating).
  • È stato implementato il supporto per il linguaggio HIP (Heterogeneous Interface for Portability) attraverso il framework chipStar, che traduce HIP in SPIR-V.
  • È stata garantita un'integrazione completa con il simulatore GEM5 ed è stato aggiunto il supporto per il simulatore SimX basato sull'architettura TLM (Transaction-Level Modeling).
  • È stato aggiunto il supporto per gli strumenti Synopsys e Yosys per la sintesi della logica per la produzione di chip, così come il supporto per l'uso delle librerie di standard elements ASAP7 (7nm), SAED14 (14nm) e NanGate (15nm).
  • L'kit di riferimento è stato aggiornato a LLVM 20 e POCL 7.0.

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