2010-06-02 5 views
1

Si je veux réécrire mon application pour qu'elle exploite la puissance du SDK CUDA de nVidia, y a-t-il des différences dans les performances d'exécution entre les différentes offres SDK: C++, Java, Python?Différences de performances entre différents SDK CUDA?

Existe-t-il une différence entre ces 3 SDK, en plus du langage évident utilisé?

Répondre

3

Il y aura un impact mesurable sur les performances des parties liées au processeur de votre traitement. Par exemple, si vos données CUDA nécessitent un prétraitement avant d'atteindre le GPU, l'écriture de la routine numérique en Python serait sous-optimale.

Si vos routines CUDA dominent le temps de calcul (le CPU reste relativement inactif), l'une des liaisons est un bon choix.

Il peut être préférable de d'abord prototyper dans un langage tel que Python, et si vous identifiez un goulot d'étranglement des performances, déplacez ce code vers C++.

+0

Dans les trois cas que vous mentionnez (C++, Java, Python) le noyau CUDA lui-même est essentiellement le même, la différence est dans les liaisons API pour installer et lancer votre noyau sur le GPU. Par conséquent, une fois que le noyau fonctionne réellement, comme le dit le thème, il n'y aura pas de différence. – Tom

Questions connexes