Vortex 3.0, un GPGPU open source basé sur l'architecture RISC-V, a été publié

Le projet Vortex 3.0, qui développe un GPGPU open source basé sur l'architecture RISC-V et conçu pour le calcul parallèle utilisant l'API OpenCL et le modèle d'exécution SIMT (Single Instruction, Multiple Threads), est désormais disponible. Ce projet peut également être utilisé pour la recherche en infographie 3D et le développement de nouvelles architectures GPU. Les schémas, les descriptions des blocs matériels en Verilog, le simulateur, les pilotes et la documentation technique associée sont distribués sous licence Apache 2.0.

GPGPU est basé sur l'architecture RISC-V standard, étendue par des instructions supplémentaires pour la prise en charge des fonctionnalités GPU et la gestion des threads. Les modifications apportées à l'architecture du jeu d'instructions RISC-V sont réduites au minimum, et les instructions vectorielles existantes sont utilisées autant que possible. Parmi ces instructions supplémentaires, on trouve : « tex » pour accélérer le traitement des textures ; vx_rast pour le contrôle de la rastérisation ; vx_rop pour le traitement des fragments, de la profondeur et de la transparence ; vx_imadd pour les opérations de multiplication et d'addition ; vx_wspawn, vx_split, vx_join, vx_tmc et vx_bar pour l'activation de groupes de threads (fronts d'onde) exécutés en parallèle par le moteur SIMD.

Le GPGPU en cours de développement prend en charge les architectures de jeux d'instructions RISC-V 32 et 64 bits RV32IMF et RV64IMAFD et peut inclure une mémoire partagée optionnelle, des caches L1, L2 et L3, ainsi qu'un nombre configurable de cœurs, de warps et de threads. Chaque cœur peut également inclure un nombre configurable d'unités arithmétiques et logiques (UAL), d'unités de calcul en virgule flottante (FPU), d'unités de traitement du langage (LSU) et d'unités fonctionnelles de l'espace (SFU). Les FPGA Xilinx et Altera peuvent être utilisés pour le prototypage, et Verilator (simulateur Verilog), RTLSIM (simulation RTL) et SimX (simulation logicielle) pour la simulation de la puce.

Pour le développement d'applications, une boîte à outils est proposée, incluant des versions adaptées à Vortex de PoCL (compilateur et environnement d'exécution OpenCL), LLVM/Clang, GCC et Binutils. Le projet prend en charge la spécification OpenCL 1.2 et implémente la prise en charge de la représentation intermédiaire SPIR-V des shaders via une traduction vers OpenCL.

Les changements apportés à Vortex 3.0 incluent :

  • Une pile graphique matérielle a été ajoutée, comprenant des blocs pour la rastérisation, le mappage de textures et la fusion de données (OM). Un pilote Vulkan, vortexpipe, a été développé pour Mesa, basé sur la pile graphique implémentée et le rasteriseur logiciel lavapipe.
  • Les capacités du Tensor Core, conçu pour accélérer l'exécution des modèles d'apprentissage automatique, ont été étendues, avec la mise en œuvre d'une prise en charge de la parcimonie structurée pour la compression des matrices de poids.
  • L'opération WGMMA (multiplication matricielle au niveau du warpgroup) a été implémentée pour la multiplication matricielle en mode asynchrone.
  • Ajout d'un moteur DXA (Data Transfer Acceleration) pour accélérer le transfert de données de la mémoire globale vers la mémoire locale.
  • Une nouvelle architecture a été mise en œuvre sur la base d'un processeur de commandes (CP) et d'un planificateur matériel de cœurs de calcul (KMU - Kernel Management Unit), qui permet la répartition des threads de calcul côté puce.
  • Une nouvelle bibliothèque d'exécution est proposée. Fonctionnant en mode non bloquant, elle fournit des abstractions permettant de traduire des commandes matérielles exécutées de manière asynchrone. Elle prend en charge les files d'attente, les événements, les modules et la synchronisation basée sur des barrières asynchrones avec une sémantique d'arrivée/attente/événement.
  • Ajout de la prise en charge des instructions raccourcies RISC-V (RVC).
  • La prise en charge matérielle des opérations atomiques (Hardware Atomics) a été implémentée.
  • L'unité de calcul en virgule flottante (FPU) a été entièrement repensée et de nouveaux blocs multiplicateurs (arbre de Wallace, base repliée) et additionneurs (Kogge-Stone) ont été introduits.
  • Ajout d'une pile de mémoire virtuelle basée sur l'unité de gestion de la mémoire (MMU) avec prise en charge de l'architecture d'adressage virtuel SV32 32 bits.
  • Prise en charge de l'extension RISC-V Zicond avec implémentation d'opérations conditionnelles.
  • Gestion intégrée de l'horloge.
  • La prise en charge du langage HIP (Heterogeneous Interface for Portability) a été implémentée via le framework chipStar, qui traduit HIP en SPIR-V.
  • L'intégration complète avec le simulateur GEM5 a été assurée, et la prise en charge du simulateur SimX sur l'architecture TLM (modélisation au niveau transactionnel) a été ajoutée.
  • Ajout de la prise en charge des kits d'outils Synopsys et Yosys pour la synthèse logique en vue de la fabrication de puces, ainsi que de la prise en charge de l'utilisation des bibliothèques d'éléments standard ASAP7 (7 nm), SAED14 (14 nm) et NanGate (15 nm).
  • La chaîne d'outils de référence a été mise à jour vers LLVM 20 et POCL 7.0.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster