Un groupe de chercheurs de l'Institut Technologique de Géorgie développe le projet de recherche Vortex, qui propose un GPGPU ouvert basé sur l'architecture de l'ensemble d'instructions RISC-V, visant à exécuter des calculs parallÚles en utilisant l'API OpenCL et le modÚle d'exécution SIMT (Single Instruction, Multiple Threads), ainsi qu'à mener des recherches dans le domaine de la 3D et du développement de nouvelles architectures de GPU. Le projet est encore à l'état de prototype, fonctionnant grùce à un FPGA. Les schémas, les descriptions des blocs matériels en Verilog, le simulateur, les pilotes et la documentation de projet associée sont diffusés sous la licence BSD.
Dans sa forme actuelle, un ISA RISC-V standard est fourni, étendu par certaines instructions supplémentaires nécessaires pour soutenir les fonctions GPU et la gestion des flux. Dans le cadre de son développement, les auteurs du projet ont tenté de minimiser les changements dans l'architecture de l'ensemble d'instructions RISC-V, en utilisant autant que possible les instructions vectorielles déjà existantes. Une approche similaire est également appliquée dans le projet RV64X, qui développe également un GPU ouvert basé sur les technologies RISC-V.

Les capacités graphiques de Vortex sont encore limitées. Il a été annoncé qu'il prend en charge OpenGL ES sur Vortex, mais le GPU ne dispose pour l'instant que de l'instruction «tex» pour accélérer le traitement des textures, qui est effectué au niveau du shader de fragments. Un rastérisateur intégré est absent : tout le traitement des opérations géométriques est exécuté par le CPU systÚme, et les primitives de base pour les points, les lignes et les triangles, ainsi que le traitement des fragments, des profondeurs et de la transparence, sont réalisés à l'aide du noyau OpenCL.

à l'avenir, il est prévu d'implémenter des extensions ISA spécifiques au traitement graphique, d'ajouter la prise en charge des API CUDA et Vulkan, ainsi que des extensions pour accélérer les systÚmes d'apprentissage machine et d'analyse de données. Pour le développement d'applications, un ensemble d'outils est proposé, comprenant des versions adaptées de PoCL (compilateur et runtime OpenCL), LLVM/Clang, GCC et Binutils. La simulation du fonctionnement de la puce est supportée à l'aide de Verilator (simulateur Verilog) et SimX (simulation logicielle).

Caractéristiques principales de Vortex :
- Prise en charge de l'architecture de l'ensemble d'instructions RISC-V RV32IMF.
- ScalabilitĂ© de la puce jusqu'Ă 64 cĆurs avec caches L2 et L3 en option.
- Chaque cĆur peut exĂ©cuter 1024 threads et fonctionne Ă une frĂ©quence de 250 MHz.
- La puissance de calcul maximale est estimĂ©e Ă 128 Gflops, avec une bande passante mĂ©moire de 16 Go/s. Une implĂ©mentation 32 cĆurs fonctionnant Ă 200 MHz, basĂ©e sur FPGA Altera Stratix 10, a montrĂ© une performance de 25,6 GFlops.
- Support du standard OpenCL 1.2.
- Possibilité d'implémentation sur FPGA Intel Arria 10 et Intel Stratix 10.
Source : opennet.ru
