Voici la réponse complète (basée sur les réponses d'Alex Falappa et de Lekensteyn) :
Il est en effet possible de faire fonctionner les GPU nVidia Optimus avec CUDA sur Ubuntu.
Bumblebee n'est pas nécessaire pour CUDA. (plus d'infos sur Bumblebee : Une carte NVIDIA GeForce avec la technologie Optimus est-elle prise en charge par Ubuntu ?)
Cependant, lorsque vous avez besoin d'afficher des exemples graphiques utilisant OpenGL, vous avez bien besoin de quelque chose comme Bumblebee pour les systèmes Optimus, sinon vous ne verrez rien sur votre écran ou obtiendrez l'erreur :
ERREUR : Prise en charge des extensions OpenGL nécessaires manquante.
Si vous avez besoin d'utiliser un programme intensif en graphiques comme Blender, Bumblebee est actuellement une bonne option.
Allez directement à Installation de CUDA si vous ne voulez pas installer Bumblebee (c'est-à-dire si vous n'avez pas besoin d'OpenGL).
Sinon, continuez.
Installation de Bumblebee
Suivez les instructions sur Comment fonctionnent les ordinateurs portables avec Nvidia Optimus ?
Ces instructions sont actuellement maintenues à jour par un développeur de Bumblebee.
Une fois que vous avez installé Bumblebee et redémarré, vous pourrez choisir la carte graphique à utiliser lors du lancement des programmes en utilisant le programme optirun
.
Par exemple :
optirun blender
Pour tester rapidement si tout fonctionne correctement, utilisez :
optirun glxspheres
Vous verrez un programme avec des sphères colorées en rotation si tout fonctionne correctement.
Vérifiez que la chaîne du vendeur GL dans le terminal contient le mot nvidia.
Si vous exécutez simplement glxspheres
, vous verrez que la chaîne du vendeur contient la carte Intel à la place.
Lors de l'exécution d'un programme CUDA, vous devez installer la trousse à outils CUDA et un pilote nvidia. Si vous avez l'intention de compiler des programmes, vous avez également besoin du SDK. Les installateurs peuvent être trouvés sur http://developer.nvidia.com/cuda-downloads, veuillez lire les instructions ci-dessous avant de compromettre votre ordinateur portable Optimus.
Installation de CUDA
Pilote
Je recommande d'installer le pilote nvidia à partir du gestionnaire de paquets d'Ubuntu. Si vous installez Bumblebee, vous n'avez pas à vous soucier du pilote. Sinon, après l'installation, désactivez les bibliothèques nvidia comme décrit sur https://askubuntu.com/a/107746/6969. Sinon, vous perdrez l'accélération 3D et pourriez rester bloqué à une faible résolution.
Trousse à outils
En gros, vous devez télécharger l'installateur, le rendre exécutable et l'exécuter. - Téléchargez l'installateur. Au 9 janvier 2013, la version 5.0.35 est la plus récente. Étant donné que j'ai un OS 64 bits, j'utilise le paquet Ubuntu 64 bits 11.10 (bien que j'utilise la version 12.10) - Rendez-le exécutable et autorisez l'installation dans /usr/local/cuda
:
chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
Lorsque le message d'installation apparaît et vous demande où installer CUDA, appuyez simplement sur Entrée pour accepter /usr/local/cuda
par défaut :
......................................
Entrez le chemin d'installation (par défaut /usr/local/cuda, '/cuda' sera ajouté) :
Après l'installation, quelques messages s'afficheront indiquant de mettre le répertoire de la bibliothèque de cuda dans votre chemin de recherche de bibliothèque :
========================================
* Assurez-vous que votre CHEMIN inclut /tmp/cuda/cuda/bin
* Assurez-vous que votre LD_LIBRARY_PATH
* pour les distributions Linux 32 bits inclut /tmp/cuda/cuda/lib
* pour les distributions Linux 64 bits inclut /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OU
* pour les distributions Linux 32 bits, ajoutez /tmp/cuda/cuda/lib
* pour les distributions Linux 64 bits, ajoutez /tmp/cuda/cuda/lib64 et /tmp/cuda/cuda/lib
* à /etc/ld.so.conf et exécutez ldconfig en tant que root
* Veuillez lire les notes de version dans /tmp/cuda/cuda/doc/
* Pour désinstaller CUDA, supprimez les fichiers CUDA dans /tmp/cuda/cuda
* Installation terminée
Vous pouvez passer cette étape si vous le désirez, mais vous devrez alors définir LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
plus tard lors de l'exécution d'un programme.
SDK
Si vous souhaitez pouvoir compiler des applications CUDA, vous pouvez installer le SDK de la même manière que décrit ci-dessus. Téléchargez, rendez-le exécutable et exécutez-le (sans les droits de root, par exemple sans sudo
).
Utilisation de CUDA
CUDA n'a pas besoin d'un serveur X piloté par nvidia pour fonctionner. Dans ce cas, vous pouvez exécuter votre programme de test aléatoire comme suit :
LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib32/nvidia-current:$LD_LIBRARY_PATH unProgrammeTrèsIntensifEnCalcul
Si vous n'avez pas ajouté CUDA à votre chemin de bibliothèque, vous aurez besoin de :
LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib32/nvidia-current:/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH unProgrammeTrèsIntensifEnCalcul
(vous pouvez supprimer les chemins 32 bits s'ils sont 64 bits).
Si le programme CUDA doit afficher quelque chose en utilisant OpenGL, vous devez utiliser optirun :
optirun blender
Ou, si vous n'avez pas ajouté CUDA à votre chemin par défaut :
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH optirun blender
Installation d'une version de Blender
(Avec des noyaux CUDA pré-compilés)
Lorsque vous exécutez optirun blender
, vous pouvez obtenir un message de Blender indiquant que la compilation du noyau CUDA a échoué, et un message dans le terminal similaire à celui-ci :
Compilation du noyau CUDA ...
nvcc avertisssement : L'option '--opencc-options (-Xopencc)' est obsolète et ignorée, lors de l'utilisation de compute_20, sm_20, ou supérieur
gcc : erreur en essayant d'exécuter 'cc1plus' : execvp : Aucun fichier ou dossier de ce type
La compilation du noyau CUDA a échoué, voir la console pour plus de détails.
Si vous souhaitez utiliser la fonctionnalité de rendu GPU de Blender, vous aurez peut-être besoin d'une version de Blender avec des noyaux CUDA pré-compilés. Les versions de Blender.org ont toutes des noyaux CUDA pré-compilés ; les versions du ppa:cheleb/blender-svn (plus d'informations à cette question) n'en ont pas.
Pour installer une version officielle de Blender, suivez simplement les instructions décrites dans cette réponse.
Si vous avez installé Blender dans /usr/lib/blender
, vous devriez alors pouvoir exécuter Blender depuis le terminal et utiliser le rendu GPU avec :
optirun '/usr/lib/blender/blender'