У меня есть ноутбук MSI GT60 с включенным GTX Optimus 670M GPU, и я пытался получить вход CUDA в среду Ubuntu 12.04. Я понимаю, что Optimus не поддерживается в Linux, но я прочитал следующее сообщение, предполагающее, что CUDA работает на гибридные GPU.
Я установил драйвер 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 библиотек.
К сожалению, когда я выполняю deviceQuery в SDK CUDA, я получаю следующий вывод
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Проверка/proc/driver/nvidia/gpus/0/information дает следующее
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)
Так..., что я делаю неправильно?
Спасибо!
Хорошо у меня была та же проблема. Следующее работало на меня:
установка драйверов разработчика 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
Это все записано в файле документа для драйверов устройств, в /usr/share/doc/NVIDIA_GLX-1.0/
(глава 19).
У меня точно такая же проблема, как и у вас, и хотя я не знаю, сработает ли она для вас, есть одно решение. Вы можете установить драйверы Bumblebee или Ironhide, чтобы включить Optimus для Linux. Optimus использует ваш ноутбук для переключения между двумя видеокартами и тем самым повышает производительность батареи.