Vortex, un projet qui permet une prise en charge de CUDA sur une architecture GPU RISC-V.
Nous connaissions déjà ZLUDA, qui vise à rendre CUDA (Compute Unified Device Architecture) compatible avec les GPU Intel ; mais d’autres développeurs ont également entrepris de porter l’environnement de calculs de NVIDIA sur une plateforme GPGPU (General-Purpose Computing on Graphics Processing Units) RISC-V.
Concrètement, CUDA permet à un GPU d’exécuter des calculs généraux à la place du CPU. Mais pour cela, il faut, en principe, une carte graphique NVIDIA. Des développeurs ont toutefois mis au point du GPGPU RISC-V dans le cadre d’un projet baptisé Vortex et basé sur l’ISA RV32IMF (32 bits). Il permet, par le biais de l’API Open CL 1.2, une prise en charge CUDA. Ils expliquent : “Nous proposons et construisons un pipeline pour supporter une migration CUDA de bout en bout : le pipeline accepte les codes sources CUDA en entrée et les exécute sur une architecture GPU RISC-V étendue. Notre pipeline se compose de plusieurs étapes : traduction du code source CUDA en NVVM IR, conversion de NVVM IR en SPIR-V IR, transmission de SPIR-V IR à POCL pour obtenir un fichier binaire RISC-V, et enfin exécution du fichier binaire sur une architecture GPU RISC-V étendue.”
Otoy ferait tourner les applis NVIDIA CUDA sur des GPU AMD
Du CUDA via OpenCL
Pour y voir plus clair, sachez que IR signifie “représentation intermédiaire”. Dans le domaine de la compilation, cela qualifie “une étape intermédiaire entre le code source et le code binaire”. Ainsi, NVVM IR fait référence au code source CUDA en représentation intermédiaire, lui-même basé sur l’IR LLVM. Le code est ensuite converti en IR SPIR-V (Standard Portable Intermediate Representation), puis dans le standard OpenCL appelé POCL.
Pour ceux qui ne satisferaient pas de ces explications et souhaiteraient approfondir le sujet, un PDF est consultable ici.
Apple lorgne aussi sur l’architecture RISC-V
Sources : GitHub, Tom’s Hardware US, Wikipedia