Il progetto VeriGPU sviluppa una GPU aperta nel linguaggio Verilog

Il progetto VeriGPU mira a creare una GPU aperta sviluppata nel linguaggio di descrizione e modellazione dei sistemi elettronici Verilog. Inizialmente, il progetto viene sviluppato utilizzando il simulatore Verilog, ma dopo averlo reso pronto, può essere utilizzato per produrre chip reali. Gli sviluppi del progetto sono distribuiti con licenza MIT.

La VeriGPU è posizionata come un'unità di elaborazione specifica dell'applicazione (ASIC) ottimizzata per accelerare i calcoli relativi ai sistemi di apprendimento automatico. I piani menzionano la compatibilità con il framework di apprendimento automatico profondo PyTorch e la possibilità di sviluppare applicazioni per VeriGPU utilizzando l'API HIP (Heterogeneous-Compute Interface). In futuro non è esclusa l'aggiunta del supporto per altre API, come SYCL e NVIDIA CUDA.

La GPU si evolve in base al set di istruzioni RISC-V, ma l'architettura interna risultante del set di istruzioni GPU è scarsamente compatibile con l'ISA RISC-V, poiché in situazioni in cui il design della GPU non si adatta alla rappresentazione RISC-V , il compito di mantenere la compatibilità con RISC-V non è impostato. Lo sviluppo è incentrato sulle capacità necessarie per i sistemi di apprendimento automatico, pertanto, per ridurre le dimensioni e la complessità della matrice del chip, viene utilizzato solo il formato in virgola mobile BF16 e solo le operazioni in virgola mobile richieste per l'apprendimento automatico, come sono disponibili exp, log, tanh e sqrt.

Tra i componenti già disponibili, il controller GPU, APU (Accelerated Processing Unit) per operazioni intere (“+”, “-“, “/”, “*”), blocco per operazioni in virgola mobile (“+”, “*” ) e un'unità di ramificazione. Per creare applicazioni, vengono offerti un assemblatore e il supporto per la compilazione di codice C++ basato su LLVM. Tra le funzionalità pianificate spiccano l'esecuzione parallela delle istruzioni, la memorizzazione nella cache dei dati e la memoria delle istruzioni, le operazioni SIMT (Single instruction multiple thread).

Il progetto VeriGPU sviluppa una GPU aperta nel linguaggio Verilog


Fonte: opennet.ru

Aggiungi un commento