Liberté vidéo: lancement du GPU RISC-V open source



Un GPU gratuit qui ne nécessite pas de redevances et qui n'a pas de conditions d'utilisation est le rêve de nombreux développeurs. Maintenant, un projet est présenté qui est le début de beaucoup de travail sur la création de GPU entièrement ouverts.



Il s'agit d'un projet développé par un groupe de passionnés avec Pixlica, le projet lui-même s'appelle RV64X. La tâche principale de l'équipe est de créer un jeu d'instructions supplémentaire pour les graphiques 3D et le traitement des données multimédia. Le résultat devrait être un GPU qui peut être librement intégré dans le processeur basé sur l'architecture RISC-V.



Le projet est basé sur les instructions vectorielles du RISC-V ISA. Ils ont été étendus avec la prise en charge de nouveaux types de données et d'extensions spécifiques au traitement graphique. En particulier, des opérations supplémentaires sont proposées pour le traitement des pixels (RGBA), des points (XYZW), des éléments de texture (UVW-texels), des vecteurs (opérations avec 2-4 vecteurs), des paramètres de matériaux, des calculs d'éclairage, des mathématiques transcendantales, des tampons de profondeur (Z - buffer) et des tampons de trame (Framebuffer).



Le premier prototype, selon les développeurs, est conçu pour être utilisé uniquement dans des microcontrôleurs, son support est donc limité uniquement à l'API Vulkan. Mais au fil du temps, les développeurs ajouteront la prise en charge d'OpenGL et de DirectX.



L'idée derrière le nouveau projet est la flexibilité de l'architecture, qui vous permet de connecter des extensions pour résoudre diverses tâches spécifiques, y compris la troncature en deux phases des cônes, l'utilisation de transformées de Fourier rapides pour une profondeur de couleur arbitraire et la mise en œuvre du matériel SLAM . Le RV64X a la capacité d'implémenter ses propres étapes pour le pipeline de calcul, ainsi que des tampons géométriques, de pixels et d'images. Le projet prend également en charge la création de vos propres tessellateurs.



Les fabricants, utilisant ce projet, ont la possibilité de préparer des puces conçues pour différentes tâches. Dans le même temps, RV64X est la base.



Le concept du projet est un ISA hybride CPU-GPU, qui vous permet de créer à la fois des microcontrôleurs graphiques spécialisés et des processeurs multicœurs qui combinent des cœurs de calcul avec des blocs pour effectuer des opérations graphiques. Le processeur intégré au GPU ressemblera à une seule unité sans que le bloc vidéo ne soit alloué. Il est programmé à l'aide d'un ensemble unifié d'instructions 64 bits et d'un modèle SIMD pour fournir un parallélisme au niveau des données.





On peut également citer une telle caractéristique de l'architecture du nouveau GPU comme l'utilisation d'un seul modèle de mémoire à la fois dans le CPU et le GPU, ce qui permet de se passer de mécanismes RPC / IPC supplémentaires pour traduire les appels entre la mémoire du GPU et le processeur lors du traitement des opérations de l'API 3D. Dans ce cas, des opérations graphiques standard peuvent être implémentées au niveau du microcode. Prend en charge la création de shaders, de rastérisateurs et d'extensions personnalisés pour un meilleur traçage.



Si nécessaire, les développeurs peuvent implémenter des opérations vectorielles pour travailler avec des tâches de simulation, des projets de vision par ordinateur et d'apprentissage automatique.



Quant à la mise en œuvre de l'architecture, elle comprend 32 Ko de cache L1 pour les instructions et les données, 8 Ko de SRAM pour le microcode, un décodeur d'instructions, une implémentation matérielle des jeux d'instructions RV32V et RV64X, un décodeur d'instructions étendues spécifié par microcode, une unité de logique arithmétique vectorielle (ALU ), Un fichier de registre de 136 bits avec 1 024 éléments, une unité de fonction spéciale (SFU), une unité de texture et un tampon de trame local configurable.






All Articles