CUDA & MSI GT60 с поддержкой Optimus GTX670M?

У меня есть ноутбук MSI GT60 с графическим процессором GTX 670M с поддержкой Optimus, и я пытаюсь запустить CUDA в среде Ubuntu 12.04. Я понимаю, что Optimus не поддерживается в Linux, но я прочитал следующий пост, в котором говорится, что CUDA работает для гибридных графических процессоров.

Как я могу заставить nVidia CUDA или OpenCL работать на ноутбуке с дискретной картой nVidia / интегрированной графикой Intel?

Я установил драйвер NVIDIA через

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

Результирующая версия драйвера - 302.17, и предположительно GTX 670M поддерживается с 295.59. Я также скачал CUDA 4.2 с сайта NVIDIA и скомпилировал его для библиотек nvidia-current.

К сожалению, когда я запускаю deviceQuery в CUDA SDK, я получаю следующий вывод

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

Проверка информации /proc/driver/nvidia/gpus/0/ дает следующее

    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

Вот вывод "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)

Итак... что я делаю не так?

Спасибо!

2 ответа

ОК, у меня была такая же проблема. У меня сработало следующее:

  • установка драйверов разработчика NVIDIA (295.41) без перезаписи файлов opengl:

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

    Важно не отмечать опцию, чтобы изменить xorg.conf файл

  • установите инструментарий CUDA (4.2. для меня, так как мне нужен OpenCL) и примеры кода, как обычно

  • если вы бежите deviceQuery как супер пользователь должен работать:

    sudo ./deviceQuery
    

Все это написано в файле doc для драйверов устройств, в /usr/share/doc/NVIDIA_GLX-1.0/ (глава 19).

У меня точно такая же проблема, как и у вас, и хотя я не знаю, сработает ли она для вас, есть одно решение. Вы можете установить драйверы Bumblebee или Ironhide, чтобы включить Optimus для Linux. Optimus использует ваш ноутбук для переключения между двумя видеокартами и тем самым повышает производительность батареи.

Другие вопросы по тегам