IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quelle technologie pour le calcul sur processeur graphique ?
Utiliseriez-vous plutôt une API de bas niveau ou une bibliothèque de haut niveau ?

Le , par dourouc05

33PARTAGES

4  0 
Quelle technologie pour commencer à développer une application de calcul sur GPU en 2023 ?
NVIDIA CUDA
50 %
OpenCL
50 %
JIT avec un langage de haut niveau (Numba en Python, CUDA.jl & co. en Julia, etc.)
0 %
Autre : merci de préciser en commentaire
0 %
Apple Metal
0 %
DirectCompute
0 %
Bibliothèque de haut niveau (ArrayFire, CuPy, etc.)
0 %
Voter 4 votants
Les processeurs graphiques sont de plus en plus utilisés pour des applications qui n'ont rien à voir avec les graphismes. Au début, ces GPU servaient à effectuer des calculs particuliers pour afficher des images à l'écran. Avec le temps, notamment pour les besoins des jeux vidéo et autres applications 3D, ils sont devenus de plus en plus programmables, jusqu'à pouvoir exécuter n'importe quel programme -- mais de manière efficace seulement si on y passe assez de temps d'optimisation.

Plusieurs technologies pour programmer ces GPU sont apparues, comme Sh ou Brook au tout début. Certaines de ces technologies sont restées et ont évolué, comme NVIDIA CUDA (uniquement utilisable sur processeurs NVIDIA, sauf couche d'émulation comme HIP d'AMD), d'autres sont tombées en désuétude, comme C++ AMP ou Cilk Plus. Les organisations de normalisation sont aussi passées par là : OpenCL est une alternative normalisée à CUDA, par exemple. Microsoft a proposé sa version de l'API, DirectCompute, puis Intel son extension de C++, DPC++ (une partie de oneAPI).

Pendant ce temps, d'autres développeurs ont cherché des manières de rendre le calcul sur GPU plus accessible au grand public, sans nécessairement utiliser des technologies complexes. Par exemple, on peut compiler du code Python pour GPU avec Numba. ArrayFire offre une API unifiée pour effectuer des traitements sur des tableaux, que ce soit sur CPU ou GPU, pour une série d'applications courantes (algèbre linéaire, vision par ordinateur, etc.).

Dans le cadre du développement d'une nouvelle application qui effectue ses calculs sur GPU (que ce soit un entraînement de réseau neuronal ou du traitement de signal, dans une application à part ou à l'intérieur d'un jeu vidéo), quelle technologie conseilleriez-vous ?
Serait-ce une API propriétaire, de bas niveau ou une solution de bien plus haut niveau ?
Et dans quel langage de programmation ?

Surtout : pourquoi poseriez-vous ces choix ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de calvaire
Expert confirmé https://www.developpez.com
Le 30/05/2023 à 12:26
OpenCL me semble bien pour débuter, c'est facile et ca marche sur tous les gpu (intel, amd et nvidia)
pour les usages plus avancée CUDA semble malheureusement indispensable a maitrisé.
malheureusement car c'est une techno assez fermé au gpu nvidia
1  0 
Avatar de jbrg
Membre du Club https://www.developpez.com
Le 30/05/2023 à 16:48
J'utilise OpenCL car cela fonctionne sur tous les gpu (intel, amd et nvidia).
1  0