Le mois dernier, OpenAI
publié
Triton 1.0, un langage de programmation open source de type Python qui permet aux chercheurs d'écrire du code d'unité de traitement graphique (GPU) très efficace. Revendications OpenAI
Triton
offre des avantages substantiels de facilité d'utilisation par rapport au codage dans
CUDA
, un outil de programmation développé par NVIDIA. Le référentiel de développement du langage et du compilateur Triton est disponible sur
GitHub
.
Philippe Tillet, scientifique OpenAI
mentionné
l'objectif est de devenir une alternative viable à CUDA pour l'apprentissage en profondeur. "C'est pour les chercheurs et les ingénieurs en apprentissage automatique qui ne connaissent pas la programmation GPU malgré de bonnes compétences en génie logiciel", a-t-il ajouté.
S'inscrire>>
Aujourd'hui, plusieurs langages de programmation et bibliothèques de haut niveau offrent un accès au GPU pour certains ensembles de problèmes et d'algorithmes. Dans cet article, nous examinons les alternatives à
OpenAI Triton
.
OuvrirACC
OpenACC est un modèle de programmation parallèle 'portable en performance' basé sur des directives et piloté par l'utilisateur. Il est conçu pour les ingénieurs et les scientifiques intéressés par le portage de leurs codes sur des plates-formes et des architectures matérielles « HPC » hétérogènes avec un effort de programmation nettement inférieur à celui requis avec un modèle de bas niveau. Il prend en charge les langages de programmation C, C++, Fortran et plusieurs architectures matérielles, y compris les processeurs X86 et POWER et les GPU NVIDIA.
Alors qu'OpenACC propose un ensemble de directives pour exécuter du code dans
parallèle sur le GPU
, de telles abstractions de haut niveau ne sont efficaces que pour certaines classes de problèmes et souvent inadaptées à la parallélisation non triviale ou au déplacement de données.
CUDA
Développé par NVIDIA pour l'informatique générale,
CUDA
signifie Compute Unified Device Architecture. Cette couche logicielle donne un accès direct au jeu d'instructions virtuelles des GPU et aux éléments de calcul parallèles pour l'exécution des noyaux de calcul.
Il s'agit de l'un des principaux frameworks propriétaires pour le calcul à usage général sur GPU (GPGPU) de NVIDIA. GPGPU fait référence à l'utilisation de GPU pour aider à effectuer les tâches gérées par les CPU. Il permet aux informations de circuler dans les deux sens - CPU vers GPU et vice versa, améliorant l'efficacité dans diverses tâches, en particulier les images et les vidéos.
CUDA peut fonctionner avec des langages de programmation tels que C, C++ et Fortran. Il a des applications dans divers domaines, notamment les sciences de la vie, la bioinformatique, la vision par ordinateur, l'électrodynamique, la chimie computationnelle, l'imagerie médicale, la finance, etc.
PyCUDA
PyCUDA
donne à Pythonic un accès à l'API de calcul parallèle CUDA de NVIDIA. Il aide au nettoyage de l'objet lié à la durée de vie de l'objet. PyCUDA connaît également les dépendances, de sorte qu'il ne se détachera pas d'un contexte avant que toute l'allocation de mémoire qu'il contient ne soit également libérée. Des abstractions comme
SourceModule
et
GPUArray
rendre la programmation CUDA encore plus pratique qu'avec l'environnement d'exécution basé sur C de NVIDIA.
PyCUDA garantit que toutes les erreurs CUDA sont automatiquement traduites en exceptions Python.
OpenCL
Langage informatique ouvert (
OpenCL
) est une norme ouverte pour l'écriture de code qui s'exécute sur des plates-formes hétérogènes, y compris les CPU, les GPU, les processeurs de signaux numériques (DSP), les matrices de portes programmables sur site (FPGA) et d'autres processeurs ou accélérateurs matériels. Notamment, il fournit aux applications un accès aux GPU pour GPGPU qui, dans certains cas, entraîne une accélération significative. Par exemple, en vision par ordinateur, de nombreux algorithmes peuvent s'exécuter sur un GPU beaucoup plus efficacement que sur un CPU, en particulier dans le traitement d'images, la photographie informatique, la détection d'objets, l'arithmétique matricielle, etc.
OpenPAI
Développé par Microsoft, OpenPAI offre des capacités complètes de formation et de gestion des ressources de « modèle d'IA ». La plate-forme open source prend en charge les environnements sur site, cloud et hybrides. Découvrez plus de détails sur OpenPAI
ici
.
ChatBoost
Développé par les chercheurs et ingénieurs Yandex,
ChatBoost
est un algorithme pour
renforcement du gradient
sur les arbres de décision. Il est utilisé pour la recherche, les systèmes de recommandation, l'assistant personnel, les prévisions météorologiques, les voitures autonomes, etc. En outre, il prend en charge le calcul sur CPU et GPU.
CatBoost a une qualité supérieure
par rapport
aux bibliothèques GBDT sur de nombreux ensembles de données ; a le meilleur de sa catégorie
vitesse de prédiction
; prend en charge les deux
caractéristiques numériques et catégorielles
; et prise en charge rapide des GPU et multi-GPU pour une formation prête à l'emploi, et comprend
outils de visualisation
.
Voir également
Des avis
Application du modèle de réseau neuronal au problème du contrôle de la taille des cellules
Tf Quant Finance
Financement quantitatif TF
propose des composants hautes performances tirant parti de la prise en charge de l'accélération matérielle et de la différenciation automatique de TensorFlow.
La bibliothèque prend en charge TensorFlow pour les méthodes mathématiques fondamentales (optimisation, interpolation, recherche de racines, algèbre linéaire, etc.), les méthodes de niveau intermédiaire (solveurs ODE et PDE, cadre de processus Ito, générateurs de chemins de diffusion, etc.) et les modèles de tarification spécifiques (Vol local (LV), Vol stochastique (SV), Vol local stochastique (SLV), Hull-White (HW)).
Lingvo
Lingvo
est un framework open source pour développer des réseaux de neurones dans TensorFlow, en particulier des modèles de séquence. Consultez la liste des publications en utilisant
Lingvo
ici
.
Processeur Nyuzi
Le processeur Nyuzi est une conception matérielle expérimentale du processeur GPGPU axée sur les tâches de calcul intensif. Il est optimisé pour les cas d'utilisation tels que l'apprentissage en profondeur et le traitement d'images. Il comprend une conception matérielle synthétisable écrite en System Verilog, un émulateur de jeu d'instructions, un compilateur C/C++ basé sur LLVM, des bibliothèques logicielles et des tests. Il est également utilisé pour expérimenter des compromis micro-architecturaux et de conception de jeux d'instructions. Plus de détails sur le processeur Nyuzi peuvent être trouvés sur
GitHub
.
Émeu
Emu est une bibliothèque GPGPU pour
Rouiller
en mettant l'accent sur la portabilité, la modularité et les performances. Il peut fonctionner n'importe où car il utilise WebGPU pour prendre en charge DirectX, Metal, Vulkan (et OpenGL et le navigateur éventuellement) en tant que cible de compilation. Il permet à Emu de s'exécuter sur à peu près n'importe quelle interface utilisateur, y compris le bureau, le mobile et le navigateur. De plus, en déplaçant des calculs lourds vers l'appareil de l'utilisateur, les utilisateurs peuvent réduire la latence du système et améliorer la confidentialité.
Emu donne l'impression que WebGPU
CUDA
. C'est une abstraction totalement transparente. En d'autres termes, vous pouvez décider de supprimer l'abstraction et de travailler directement avec les constructions WebGPU sans aucune surcharge. De plus, il est totalement asynchrone.
Explorez plus de projets open source de GPU computing
ici
.
Qu'est-ce que tu penses?
Rejoignez notre groupe Telegram. Faites partie d'une communauté en ligne engageante.
Rejoignez ici
.
Abonnez-vous à notre newsletter
Recevez les dernières mises à jour et offres pertinentes en partageant votre e-mail.