10 meilleures alternatives à OpenAI Triton

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.

Articles populaires