Le projet VeriGPU développe un GPU ouvert dans le langage Verilog

Le projet VeriGPU vise à créer un GPU ouvert développé dans le langage Verilog pour décrire et modéliser des systèmes électroniques. Initialement, le projet est développé à l'aide d'un simulateur Verilog, mais une fois terminé, il pourra être utilisé pour la production de véritables puces. Les développements du projet sont distribués sous licence MIT.

VeriGPU se positionne comme un processeur spécifique à une application (ASIC) optimisé pour accélérer les calculs liés aux systèmes d'apprentissage automatique. Les plans incluent la compatibilité avec le framework d'apprentissage automatique profond PyTorch et la possibilité de développer des applications pour VeriGPU à l'aide de l'API HIP (Heterogeneous-Compute Interface). À l'avenir, il sera possible d'ajouter la prise en charge d'autres API, telles que SYCL et NVIDIA CUDA.

Le GPU évolue à partir du jeu d'instructions RISC-V, mais l'architecture interne résultante du jeu d'instructions GPU est faiblement compatible avec le RISC-V ISA, car dans les situations où la conception du GPU ne correspond pas à la représentation RISC-V, il est non destiné à maintenir la compatibilité RISC-V. Le développement se concentre sur les capacités requises pour les systèmes d'apprentissage automatique, donc pour réduire la taille et la complexité de la matrice de puce, il utilise uniquement le format à virgule flottante BF16 et uniquement les opérations à virgule flottante requises pour l'apprentissage automatique, telles que exp, log, tanh et sqrt, sont disponibles.

Parmi les composants déjà disponibles figurent le contrôleur GPU, l'APU (Accelerated Processing Unit) pour les opérations sur les nombres entiers ("+", "-" "/", "*") et une unité pour les opérations en virgule flottante ("+", , "*") et un bloc de branchement. Pour créer des applications, il propose un assembleur et un support pour la compilation de code C++ basé sur LLVM. Parmi les fonctionnalités prévues, l'exécution parallèle d'instructions, la mise en cache des données et de la mémoire d'instructions ainsi que les opérations SIMT (Single instruction multiple thread) sont mises en avant.

Le projet VeriGPU développe un GPU ouvert dans le langage Verilog


Source: opennet.ru

Ajouter un commentaire