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

La deuxième édition du projet Vortex a été publiée. Ce projet développe un GPGPU ouvert basé sur l'architecture de jeu d'instructions RISC-V, conçu pour effectuer des 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 en graphisme 3D et le développement de nouvelles architectures GPU. Les schémas, les descriptions de blocs matériels en Verilog, un simulateur, les pilotes et la documentation de conception associée sont distribués sous licence Apache 2.0.

Le cœur de GPGPU est un RISC-V ISA générique, étendu avec quelques instructions supplémentaires nécessaires pour prendre en charge la fonctionnalité GPU et le contrôle des threads. Dans le même temps, les modifications apportées à l'architecture du jeu d'instructions RISC-V sont réduites au minimum et, dans la mesure du possible, les instructions vectorielles existantes sont utilisées. Une approche similaire est utilisée dans le projet RV64X, qui développe également un GPU ouvert basé sur les technologies RISC-V.

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

Pour les graphiques basés sur les technologies Vortex, le GPU ouvert Skybox 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 comprenant 32 cœurs (512 threads), a permis d'atteindre des performances de remplissage de 230 gigapixels par seconde (3.7 gigatransactions par seconde) à une fréquence de 29.4 MHz. Il est à noter qu’il s’agit du premier GPU ouvert avec une implémentation logicielle et matérielle prenant en charge Vulkan.

Principales caractéristiques de Vortex :

  • Prend en charge les architectures de jeu d'instructions RISC-V 32 et 64 bits RV32IMF et RV64IMAFD.
  • Nombre configurable de cœurs, de blocs de tâches (warps) et de threads.
  • Nombre configurable d’ALU, FPU, LSU et SFU par cœur.
  • Largeur de problème de pipeline réglable.
  • Mémoire partagée en option et caches L1, L2 et L3.
  • Prise en charge de la spécification OpenCL 1.2.
  • Possibilité d'implémentation basée sur FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 et Xilinx Versal VCK5000.
  • Instructions avancées : "tex" pour accélérer le traitement des textures, vx_rast pour contrôler la rastérisation, vx_rop pour gérer les fragments, la profondeur et la transparence, vx_imadd pour effectuer des opérations de multiplication et d'addition, vx_wspawn, vx_tmc et vx_bar pour activer les bords et les fronts d'onde des instructions, un ensemble de threads exécutés en parallèle par le moteur SIMD), vx_split et vx_join.
  • La prise en charge de la représentation intermédiaire des shaders SPIR-V est implémentée via la traduction vers OpenCL.
  • Pour le développement d'applications, une boîte à outils est proposée, comprenant des variantes de PoCL (compilateur et runtime OpenCL), LLVM/Clang, GCC et Binutils adaptées pour travailler avec Vortex.
  • La simulation de puce est prise en charge à l'aide de Verilator (simulateur Verilog), RTLSIM (simulation RTL) et SimX (simulation logicielle).

Parmi les changements dans Vortex 2.0 :

  • La microarchitecture a été optimisée.
  • Prise en charge ajoutée pour l'architecture du jeu d'instructions RISC-V RV64IMAFD 64 bits.
  • Ajout de la possibilité d'implémenter sur la base du FPGA Xilinx.
  • Ajout de la prise en charge de LLVM 16 et Ubuntu 20.04.
  • Un refactoring a été effectué et des corrections ont été apportées aux déficiences identifiées lors de l'évaluation de la qualité.

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