J'ai trouvé une demi-douzaine de messages à ce sujet sur le Web, mais aucun d'eux ne répond vraiment à la question.
Je veux configurer mon GPU nvidia pour ne faire que des calculs, pas pour piloter l'affichage. Mais lorsque je passe à l'utilisation du processeur graphique Intel dans la configuration nvidia-prime, je ne peux plus charger le module nvidia.
modprobe: ERROR: could not insert 'nvidia_352': No such device
Sans le module, CUDA ne fonctionne pas, évidemment.
Alors, que fait exactement nvidia-prime qui rend impossible le chargement du module? Ce n'est pas sur liste noire. Il n'y a pas de fichier xorg.conf, alors comment le système sait-il utiliser le processeur graphique Intel à la place du processeur discret?
Je suis sur un Dell 5510 Precision avec Ubuntu 14.04 installé en usine et mon GPU est Quadro M1000M.
Certains suggèrent d'utiliser des bourdons, mais cela ne devrait pas être nécessaire pour des charges de calcul pures.
En outre, apparemment, bumblebee est capable de charger le module. Alors, que fait-il exactement?
Mise à jour: Alors pourquoi semble-t-il toujours que je trouve la réponse lorsque je poste enfin une question, après des heures à essayer de la comprendre. Cette réponse n'est que partielle, mais je suis sur quelque chose.
Jusqu'à présent, j'ai déterminé que Prime fait au moins deux choses:
- Désactivez le GPU à l'aide de bbswitch.
- Modifie les alternatives pour /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf.
En utilisant bbswitch pour réactiver le GPU, je peux maintenant charger le module NVIDIA.
Mais la question demeure: quelle est la meilleure façon de configurer le système pour utiliser la carte NVIDIA uniquement pour les calculs?
Dois-je configurer nvidia-prime pour utiliser le processeur graphique Intel et essayer de démêler manuellement ce qui a fait fonctionner CUDA?
Comment puis-je m'assurer que le système utilise toujours le processeur graphique Intel pour l'affichage?
Comment pourrais-je simplement désactiver NVIDIA Prime et tout configurer manuellement?
Ou devrais-je abandonner et utiliser Bumblebee et optirun? Quels en sont les inconvénients, le cas échéant?
Des recommandations?
la source
Réponses:
Dans mon cas, j'ai constaté que la carte NVidia n'était pas réellement désactivée, et la seule chose que je devais réellement faire pour exécuter le code CUDA était:
dans le shell où je veux l'exécuter (je suppose que changer globalement le paramètre alternatif casserait compiz, etc, etc ...)
Pour arriver à ce point (sur un Dell Optiplex 7010, avec Ubuntu 14.04, CUDA 7.5 et une GTX 980), je pense que les étapes étaient les suivantes:
Tout semble bien fonctionner jusqu'à présent (nvidia-smi voit la carte, les échantillons cuda fonctionnent, theano utilise la carte, etc ...)
la source
Je crois que j'ai trouvé au moins une solution rapide à cela, comme décrit dans la mise à jour de mon message d'origine. J'ai vraiment trouvé deux solutions, même si je suis sûr qu'il y en a d'autres.
1 - Avec Prime en mode Intel, réactivez la carte NVIDIA via bbswitch , puis exécutez
modprobe nvidia
pour charger le module et créer les nœuds de périphérique.2 - Utilisez Bumblebee optirun pour lancer une session bash à partir de laquelle vous pouvez faire tous vos trucs CUDA.
Ces deux solutions vous permettent d'utiliser les graphiques intégrés pour votre affichage, tout en utilisant la carte NVIDIA pour calculer les charges. La solution optirun semble plus polyvalente, mais je préfère la première pour son minimalisme.
J'espère que quelqu'un avec plus de compréhension améliorera cette réponse.
la source
J'utilise la carte NVIDIA uniquement pour les exécutions CUDA et découvre cette approche:
Tout le temps j'utilise une carte Intel et cela est confirmé par la commande
lspci | grep -E "VGA|3D"
:Dans la ligne correspondante pour la carte NVIDIA, vous devriez voir
(rev ff)
que cela signifie qu'elle est désactivée.Pour allumer la carte et l'utiliser pour les calculs CUDA, j'utilise deux commandes suivantes:
Après ce
lspci | grep -E "VGA|3D"
rapport de commande :Notez environ
(rev a2)
, pas(rev ff)
dans la ligne correspondante. Maintenant, la carte est prête pour le calcul.Après les calculs, j'utilise des actions en arrière:
Et
lspci | grep -E "VGA|3D"
rapporte:la source
Si quelqu'un rencontre toujours des problèmes après avoir suivi les étapes de la réponse acceptée, essayez ceci:
Cela désactivera complètement bbswitch. L'inconvénient est que vous ne pourrez pas désactiver la carte NVIDIA pour économiser l'énergie (Xorg utilise toujours des graphiques intégrés, tant que
prime-select intel
).la source
J'utilise un 1070 ti avec un thinkpad T420 dans un egpu configuré pour extraire la crypto-monnaie pendant que je travaille. Le GPU sera théoriquement rentabilisé après quelques mois de cette façon.
J'ai trouvé qu'avec nvidia 387, l'exportation LD_LIBRARY_PATH = / usr / lib / nvidia-387 fonctionnait avec ethminer en utilisant cuda.
Cependant, la seule façon dont je pouvais faire fonctionner le système après un "premier choix" était si j'avais un deuxième moniteur branché sur la carte lorsque j'ai fait la sélection et que je me suis déconnecté. Sinon, j'obtiendrais une erreur «Le système fonctionne en mode graphique bas» ou un écran vide continu. Bien sûr, lorsque je me connecte en exécutant des graphiques Intel, le moniteur branché sur le GPU n'affiche rien, je dois donc le débrancher du processeur graphique et le rebrancher sur le système (sortie de la station d'accueil DVI) pour exécuter la configuration de mon moniteur en duel .
Je pense que c'est parce que gpu-manager détecte que bbswitch ne fonctionne pas, puis supprime la configuration xorg.
Je poste ceci pour montrer une solution de contournement pour quelques-uns qui pourraient être dans une situation similaire, mais aussi pour voir si quelqu'un a une idée pour empêcher cela, car avoir à déplacer ce câble pour chaque redémarrage est un peu un inconvénient.
fichier_log: /var/log/gpu-manager.log
last_boot_file: / var / lib / ubuntu-drivers-common / last_gfx_boot new_boot_file: / var / lib / ubuntu-drivers-common / last_gfx_boot ne peut pas accéder / exécuter / udc-fglrx-was-chargé fichier Recherche de modules fglrx dans / lib /modules/4.4.0-104-generic/updates/dkms Recherche de modules nvidia dans /lib/modules/4.4.0-104-generic/updates/dkms Module nvidia trouvé: nvidia_387_drm.ko Nvidia est-il chargé? oui Nvidia a-t-il été déchargé? non Nvidia est-il sur liste noire? oui fglrx est-il chargé? non fglrx a-t-il été déchargé? non fglrx est-il sur liste noire? non Les informations sont-elles chargées? oui La radeon est-elle chargée? non Radeon est-il sur liste noire? non amdgpu est-il chargé? non amdgpu est-il sur liste noire? non Nouveau chargé? non Nouveau sur liste noire? oui Le module du noyau fglrx est-il disponible? non Le module du noyau nvidia est-il disponible? oui ID fournisseur / périphérique: 8086: 126 BusID "PCI: 0 @ 0: 2: 0" Est-ce que boot vga? oui ID fournisseur / périphérique: 10de: 1b82 BusID "PCI: conf Alternative principale actuelle: (null) Alternative actuelle à egl: /usr/lib/nvidia-387-prime/ld.so.conf nvidia est-il activé? nvidia egl est-il activé? non fglrx est-il activé? non Mesa est-il activé? non Mesa egl est-il activé? non pxpress est-il activé? non L'amorçage est-il activé? oui Prime egl est-il activé? oui Nvidia est-il disponible? oui Nvidia egl est-il disponible? non fglrx est-il disponible? non Fglrx-core est-il disponible? non Mesa est-il disponible? oui Mesa egl est-il disponible? oui pxpress est-il disponible? non Le premier est-il disponible? oui Prime egl est-il disponible? aucun processeur Intel IGP détecté Système hybride Intel Nvidia version 387.34 détectée / sys / class / dmi / id / product_version = "ThinkPad T420" / sys / class / dmi / id / product_name = "4236L23" 1er essai: bbswitch sans bizarreries Chargement de bbswitch avec Paramètres "load_state = -1 unload_state = 1" Erreur: peut ' t open / proc / acpi / bbswitch Suppression de xorg.conf. Chemin: /etc/X11/xorg.conf ne peut pas accéder à /usr/share/gpu-manager.d/hybrid-power-saving Pas besoin de changer l'état actuel du bbswitch
Si je nano xorg.conf après cela, il est vide. Je poste ceci après avoir fait l'astuce de changement de moniteur, avec l'exploitation minière en arrière-plan, et mon xorg.conf est toujours vide. Donc, je suppose que pour une raison quelconque, lorsque je garde le moniteur connecté au GPU au redémarrage de lightdm, peu importe que mon xorg.conf soit supprimé. Des idées?
la source