web-dev-qa-db-fra.com

Version d'exécution CUDA vs version du pilote CUDA - quelle est la différence?

L'API CUDA Runtime expose les fonctions

  • cudaRuntimeGetVersion() et
  • cudaDriverGetVersion()

(voir description détaillée ici ). Je m'attendais à ce que le premier me donne "8.0" (pour CUDA 8.0) et le second me donne la même chaîne que ce que j'obtiendrais en examinant le module du noyau du pilote GPU de nVIDIA, par ex.

modinfo nvidia | grep "^version:" | sed 's/^version: *//;'

qui sur mon système est 367.57.

Maintenant, le premier appel me donne 8000 - très bien, juste une façon bizarre de dire 8.0 je suppose; mais le deuxième appel API me donne également 8000. Alors, qu'est-ce que cela signifie?

La documentation de l'API Runtime à laquelle j'ai lié ne semble pas expliquer cela.

17
einpoklum

La version d'exécution CUDA indique la compatibilité CUDA (c'est-à-dire la version) par rapport à la bibliothèque cudart installée (exécution CUDA).

La version du pilote CUDA (comme indiqué ici) rapporte les mêmes informations en ce qui concerne le pilote.

Cela concerne le modèle de compatibilité des pilotes dans CUDA. Comme je suis sûr que vous le savez, une version particulière de la boîte à outils CUDA (c'est-à-dire la version de la bibliothèque d'exécution CUDA, la version du compilateur nvcc, etc.) nécessite un minimum particulier niveau du pilote pour une utilisation correcte des codes compilés avec cette boîte à outils.

La version du pilote CUDA (comme indiqué ici) signale efficacement quelles versions CUDA peuvent être prises en charge par le pilote installé particulier.

Comme vous l'avez déjà découvert, il ne rapporte pas la version réelle du pilote numéroté.

12
Robert Crovella