Installation de machine avec RT Kernel et accélération graphique
Que ce soit pour LeRobot, pour AICA, ou en général pour utiliser des modèles d'IA, l'installation de Linux avec les bons drivers graphiques n'est pas toujours aisé.
On veut accéder dans Docker aux capacités Compute d'un GPU, essentiellement fournie par NVidia Cuda. On différentiera l'installation d'un serveur qui n'a pas besoin de l'accélération graphique liée à l'affichage, ni de capacités temps-réel, contrairement à un PC de commande de robot.
Vérification de la compatibilité
On a une carte graphique donnée :
- Vérification du Compute Capability https://developer.nvidia.com/cuda/gpus
- Si on est dans cette liste, donc Compute Capability >= 7.5 c'est une bonne base
- Si on n'y est pas, c'est qu'on a une carte Legacy
Grâce à la compatibilité des versions mineures de Nvidia CUDA, une application d'IA compilée avec CUDA 11.8 peut être exécutée avec n'importe laquelle des version CUDA 11.x. Idem pour CUDA 12.x .
Par contre une application compilée avec cuDNN 8.x n'est pas compatible avec cuDNN 9.x .
PyTorch 2.3 et inférieur utilisent cuDNN 8.x
PyTorch 2.4 et supérieur utilisent cuDNN 9.x
Il faut donc choisir la version de Pytorch en fonction des versions de CUDA et cuDNN qui sont compatibles avec l'environnement d'exécution (carte graphique et driver)
https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html
cuDNN>=v9.12.0 supporte :
- CUDA 12.x (nvidia-driver>=525.60.13)
- CUDA 13.x (nvidia-driver>=580.65.06)
- CUDA CC>=7.5
cuDNN<=v9.11.1
- CUDA 12.x (nvidia-driver>=525.60.13)
- CUDA CC>=5.0
cuDNN<=v9.10.2 :
- CUDA 12.x (nvidia-driver>=525.60.13) (12.8-9 pour >=570.26 et CC 10-12)
- CUDA 11.x (nvidia-driver>=450.80.02)
- CUDA CC>=5.0
On a une application d'IA donnée
Par exemple YOLO :
- utilise onnxruntime https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html
GPU NVidia anciens / Legacy
On a une carte graphique donnée | par exemple Quadro M620 (GM107GLM) :
- Vérification du Compute Capability https://developer.nvidia.com/cuda/gpus/legacy | CC5.2
- On conseille de laisser tomber l'IA avec des Compute Capability de 5.0 ou inférieur |
- Si on a une Compute Capability entre 5.2 et 7.2 , on peut envisager des choses mais c'est compliqué
- On est limité à des applications qui utilisent cuDNN 8.x donc PyTorch 2.3 et inférieur
- On vérifie la version de CUDA Max supportée : https://stackoverflow.com/questions/28932864/which-compute-capability-is-supported-by-which-cuda-versions | pour CC5.2 : CUDA 12.x
- Les
nvidia-driverdispos sont 535 -> 580 . 535 est testé/recommandé
Avec pytorch 2.1.1 et 2.2.0 , c'est cuddn 8.9.2 qui est installé par défaut
pytorch <2.2.0 n'est plus supporté dans pip
https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-892/support-matrix/index.html
Avec pytorch ... c'est cuddn 8.9.7 qui est installé par défaut
https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-897/support-matrix/index.html
Voir aussi https://docs.nvidia.com/deeplearning/cudnn/archives/index.html