web-dev-qa-db-fra.com

CUDA & MSI GT60 avec GTX670M compatible Optimus?

J'ai un ordinateur portable MSI GT60 avec un GPU GTX 670M compatible Optimus, et j'ai essayé de lancer CUDA dans l'environnement Ubuntu 12.04. Je me rends compte qu'Optimus n'est pas pris en charge sous Linux, mais j'ai lu le post suivant suggérant que CUDA fonctionne pour les GPU hybrides.

Comment puis-je faire fonctionner nVidia CUDA ou OpenCL sur un ordinateur portable avec une carte discrète nVidia/Intel Integrated Graphics?

J'ai installé le pilote NVIDIA via

    Sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
    Sudo apt-get update
    Sudo apt-get install nvidia-current

La version résultante du pilote est 302.17, et la GTX 670M serait prise en charge depuis 295.59. J'ai également téléchargé CUDA 4.2 sur le site NVIDIA et l'ai compilé avec les bibliothèques nvidia-current.

Malheureusement, lorsque j'exécute deviceQuery dans le SDK CUDA, j'obtiens la sortie suivante

    cudaGetDeviceCount returned 38
    -> no CUDA-capable device is detected

Vérifier/proc/driver/nvidia/gpus/0/information donne les informations suivantes

    Model:           GeForce GTX 670M
    IRQ:             16
    GPU UUID:        GPU-????????-????-????-????-????????????
    Video BIOS:      ??.??.??.??.??
    Bus Type:        PCI-E
    DMA Size:        32 bits
    DMA Mask:        0xffffffffff
    Bus Location:    0000:01.00.0

Voici la sortie de "lspci | grep VGA"

    00:02.0 VGA compatible controller: Intel Corporation Ivy Bridge Graphics Controller (rev 09)
    01:00.0 VGA compatible controller: NVIDIA Corporation Device 1213 (rev ff)

Alors ... qu'est-ce que je fais mal?

Merci!

3
user1076693

OK, j'ai eu le même problème. Ce qui suit a fonctionné pour moi:

  • installer les pilotes de développement NVIDIA (295.41) sans écraser les fichiers opengl:

    Sudo stop lightdm
    Sudo ./devdriver_4.2_linx_64_295.41.run --no-opengl-files
    

    Il est important pas de cocher l'option pour modifier le xorg.conf fichier

  • installez la boîte à outils CUDA (4.2 pour moi car j'ai besoin d'OpenCL) et les exemples de code comme d'habitude

  • si vous exécutez deviceQuery en tant que super utilisateur, cela devrait fonctionner:

    Sudo ./deviceQuery
    

Tout est écrit dans le fichier doc des pilotes de périphérique, en /usr/share/doc/NVIDIA_GLX-1.0/ (chapitre 19).

1
Matthias

J'ai exactement le même problème que vous et même si je ne sais pas si cela fonctionnera pour vous, il existe une solution. Vous pouvez installer les pilotes Bumblebee ou Ironhide pour activer Optimus pour Linux. Optimus utilise votre ordinateur portable pour basculer entre les 2 cartes vidéo et ainsi améliorer les performances de la batterie.

0
Ivan