Vortex 2.2 est disponible, un GPGPU open source basé sur l'architecture RISC-V

La version 2.2 du projet Vortex a été publiée, développant un GPGPU basé sur l'architecture de l'ensemble des instructions RISC-V, conçu pour l'exécution de calculs parallèles à l'aide de l'API OpenCL et du modèle d'exécution SIMT (Single Instruction, Multiple Threads). Le projet peut également être utilisé pour la recherche dans le domaine de la 3D et pour le développement de nouvelles architectures de GPU. Les schémas, descriptions des blocs matériels en Verilog, simulateur, pilotes et documentation projet sont distribués sous la licence Apache 2.0.

Le GPGPU repose sur un ISA RISC-V standard, étendu par des instructions supplémentaires nécessaires pour soutenir les fonctions du GPU et la gestion des flux. Les modifications de l'architecture de l'ensemble d'instructions RISC-V sont minimisées et utilisent dans la mesure du possible les instructions vectorielles existantes. Parmi les instructions supplémentaires, on peut noter : « tex » pour accélérer le traitement des textures, vx_rast pour gérer la rasterisation, vx_rop pour le traitement des fragments, de la profondeur et de la transparence, vx_imadd pour réaliser l'opération « multiplier et additionner », vx_wspawn, vx_tmc et vx_bar pour activer les fronts d'instructions et de flux (wavefront, ensemble de fils exécutés simultanément par SIMD Engine), vx_split et vx_join.

Vortex 2.2 est disponible, un GPGPU open source basé sur l'architecture RISC-V

Le GPGPU en développement prend en charge les architectures d'ensemble d'instructions RISC-V 32 bits et 64 bits RV32IMF et RV64IMAFD, et peut inclure une mémoire partagée optionnelle, des caches de niveaux L1, L2 et L3, ainsi qu'un nombre configurable de cœurs, de blocs de tâches (warps) et de flux. Pour chaque cœur, il est possible d'activer un nombre configurable d'ALU, FPU, LSU et SFU. Les prototypes peuvent être réalisés à l'aide de FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 et Xilinx Versal VCK5000. Pour simuler le fonctionnement de la puce, les simulateurs Verilator (simulateur Verilog), RTLSIM (simulation RTL) et SimX (simulation logicielle) peuvent être utilisés.

Pour le développement d'applications, un ensemble d'outils est proposé, incluant des variantes de PoCL adaptées à un fonctionnement avec Vortex (compilateur et runtime OpenCL), LLVM/Clang, GCC et Binutils. Le projet supporte la spécification OpenCL 1.2 et, à travers la traduction en OpenCL, permet la prise en charge de la représentation intermédiaire des shaders SPIR-V. Pour les graphismes sur les technologies Vortex, un GPU Skybox ouvert est en cours de développement, prenant en charge l'API graphique Vulkan. Le prototype Skybox, créé sur la base du FPGA Altera Stratix 10 et incluant 32 cœurs (512 threads), a permis d'atteindre une performance de transformation de 3,7 gigapixels par seconde (29,4 gigatransactions par seconde) à une fréquence de 230 MHz.

Parmi les changements dans la version Vortex 2.2 :

  • Ajout de l'API vx_spawn_taskgroups pour le lancement des cœurs supportant l'exécution segmentée des tâches 3D.
  • Ajout de la prise en charge de ZICOND, une extension de l'architecture de jeu d'instructions RISC-V, permettant l'exécution conditionnelle des opérations sans branchement.
  • Le compilateur OpenCL a été modifié pour planifier l'exécution au niveau de fils (thread-level), chaque fil exécutant sa tâche indépendamment des autres, au lieu de groupes de tâches (warp-level) comme auparavant.
  • Ajout de la prise en charge de la compilation JIT et des cœurs 64 bits dans OpenCL.
  • Mise en œuvre de la prise en charge du chargement dynamique du runtime Vortex.
  • Une nouvelle documentation pour la configuration des FPGA Xilinx a été proposée.
  • Tests de synthèse logique inclus en utilisant l'outil Yosys.
  • La prise en charge du cache a été ajoutée pour les opérations hiérarchiques flush et en mode write-back.
  • Optimisation de la vitesse de vérification scoreboard et du traitement des opérandes au niveau des transferts de registre (RTL, Register Transfer Level).
  • Ajout de la prise en charge du simulateur de mémoire DRAM Ramulator 2.0.
  • Migration vers l'utilisation des nouvelles versions Verilator 5.0 (simulateur SystemVerilog) et LLVM 18.0, et mise à jour de l'outil basé sur CentOS 7.9.
  • Le service GitHub CI a été adopté à la place du système d'intégration continue Travis CI.

Source : opennet.ru

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