вступление

вступление

вступление

Я пытаюсь заставить работать CUDA на моем гибридном графическом ноутбуке. Я использую (l)ubuntu 15.04.

В настоящее время я выполнил некоторые шаги в онлайн-руководстве, которые я объясню ниже, и я могу запустить optirun glxspheres64без проблем. Однако при запуске optirun ./deviceQueryя получаю следующую ошибку:

/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

В сети нет никакой информации по этому поводу.

Деталь

Руководство, которому я следовал, этоздесь. Я не следовал всем шагам в точности, так как это уже довольно устарело, и Nvidia изменила формат, в котором они отправляют свои .runфайлы.

Я сделал следующее: (Это прямо не входит в мои historyобязанности.)

15  sudo apt-add-repository ppa:bumblebee/stable
16  sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
17  sudo apt-get update 
18  sudo apt-get install bumblebee
19  sudo apt-get install bumblebee bumblebee-nvidia 
20  sudo reboot

Затем войдите в tty1, остановите x-сервер и инициализируйте 3.

21  cd Downloads/
22  chmod +x cuda_7.5.18_linux.run 
23  sudo ./cuda_7.5.18_linux.run

Установите пакет запуска со всеми параметрами по умолчанию, а также установите графический драйвер версии 352.

Затем настройте переменную PATH.

25  export PATH=/usr/local/bin:$PATH
26  export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
27  sudo ldconfig

Я пропустил следующие шаги статического связывания. Я не получил никаких ошибок компоновщика (или, по крайней мере, я думаю, что не получил) при компиляции примеров кодов, поэтому я предполагаю, что это не было обязательным. Я также не видел этого шага ни в одном другом руководстве в сети. Возможно, здесь я ошибся?

Тогда для некоторых вещей, очевидно, требуется OpenGL, поэтому:

28  sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

Составьте образцы:

30  cd NVIDIA_CUDA-7.5_Samples/
31  make

Затем я попытался запустить ./deviceQuery, который находится внутри каталога Utilities. Я получил ошибку, которую я уже видел ранее, о том, что он bumblebeedне запускается.

Так:

34  sudo vim /etc/bumblebee/bumblebee.conf 

Измените строку с Driver=(которая была пустой) на Driver=nvidia, а также строку KernelDriver=nvidia-currentс KernelDriver=nvidia.

Эта информация доступназдесь, см. (на данный момент) второй ответ на вопрос.

Это все еще не работало, поэтому я попробовал следовать информации, приведенной в первом ответе на вопрос по ссылке выше, и установил заголовки ядра:

48  sudo apt-get install linux-headers-generic 
49  sudo reboot

Если я сделаю:

54  sudo service bumblebeed status

Теперь я получаю:

● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2015-10-11 13:15:07 BST; 20min ago
 Main PID: 1502 (bumblebeed)
   CGroup: /system.slice/bumblebeed.service
           └─1502 /usr/sbin/bumblebeed

Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.019954] [WARN][XORG]....
Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.019987] [WARN][XORG]....
Oct 11 13:16:20 P151EMx bumblebeed[1502]: [  163.020055] [WARN][XORG]....
Oct 11 13:17:11 P151EMx bumblebeed[1502]: rmmod: ERROR: Module nvidia...d
Oct 11 13:17:11 P151EMx bumblebeed[1502]: modprobe: FATAL: Error runn...a
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439546] [WARN][XORG]....
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439578] [WARN][XORG]....
Oct 11 13:17:22 P151EMx bumblebeed[1502]: [  225.439606] [WARN][XORG]....
Oct 11 13:17:23 P151EMx bumblebeed[1502]: rmmod: ERROR: Module nvidia...d
Oct 11 13:17:23 P151EMx bumblebeed[1502]: modprobe: FATAL: Error runn...a
Hint: Some lines were ellipsized, use -l to show in full.

Но похоже, что у меня все еще есть некоторые проблемы здесь... Он "активен" сейчас, хотя раньше не запускался, но все еще не все работает правильно. По какой-то причине я не могу заставить -lработать опцию, чтобы дать здесь больше информации.

При запуске optirun ./deviceQueryполучаю ошибку:

/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

Что мне теперь делать?

Обновления:

Редактировать: Для тех, кто следит за этим, возможно, это идея не делать этот шаг. Может быть, попробовать установить драйвер после CUDA, чтобы избежать этого шага? Кажется, немного излишне устанавливать драйвер версии 352, а затем возвращаться к 304, выполнив следующие действия:

Я заметил, что в связанном вопросе команда sudo apt-get install -reinstall nvidia-currentбыла добавлена ​​после установки заголовков ядра.

Я выполнил эту команду, думаю, мой драйвер вернулся к версии 304. Перезагрузил, теперь

sudo service bumblebeed status

дает следующий вывод:

● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2015-10-11 13:46:53 BST; 38s ago
 Main PID: 659 (bumblebeed)
   CGroup: /system.slice/bumblebeed.service
           └─659 /usr/sbin/bumblebeed

Oct 11 13:46:53 edward-P151EMx systemd[1]: Started Bumblebee C Daemon.
Oct 11 13:46:53 edward-P151EMx systemd[1]: Starting Bumblebee C Daemon...
Oct 11 13:46:53 edward-P151EMx bumblebeed[659]: [   17.073332] [INFO]/usr/sb...d
Hint: Some lines were ellipsized, use -l to show in full.

Так что, похоже, это исправлено. ./deviceQueryОднако все еще не удается запустить, та же ошибка:

sudo optirun ./deviceQuery
/usr/bin/vglrun: 246: exec: ./deviceQuery: Permission denied

Помогите, пожалуйста. L@l

Кстати, glxspheres все еще работает:

optirun glxspheres64

Получаете ~270 FPS?

решение1

Я снова перезагрузил компьютер, и ура, все работает.

optirun ./deviceQuery

возвращается

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670MX"
  CUDA Driver Version / Runtime Version          7.5 / 7.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 3072 MBytes (3221028864 bytes)
  ( 5) Multiprocessors, (192) CUDA Cores/MP:     960 CUDA Cores
  GPU Max Clock rate:                            601 MHz (0.60 GHz)
  Memory Clock rate:                             1400 Mhz
  Memory Bus Width:                              192-bit
  L2 Cache Size:                                 393216 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.5, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 670MX
Result = PASS

Кстати, я подозреваю, что последние шаги, которые я попробовал, на самом деле не требуются, если следовать информации в вопросе выше, попробуйтенетделаем последние шаги:

  • Переустановка драйвера. Я не думаю, что это необходимо. Это также раздражает, потому что возвращает вас к гораздо более старой версии драйвера. Мне было бы интересно узнать, смог ли кто-нибудь, следуя информации в вопросе, заставить CUDA работать без выполнения этого шага.

Я думаю, что информация в вопросе может быть очень полезна для любого (и для меня), кто пытается установить:

  • CUDA 7.5 (или CUDA 7)

на Linux, в частности на дистрибутиве, связанном с Ubuntu;

  • ubuntu, xubuntu, lubuntu, ubuntu mate, kubuntu,
  • и, возможно, также linux mint 17, linux mint 17.1 и linux mint 17.2 [однако у меня ранее были проблемы с linux mint 17 и linux mint 17.2 при попытке установить CUDA]
  • возможно, один из дистрибутивов Debian (я думаю, что сейчас мы используем Debian 8, но, возможно, также Debian 7 или Debian 6)

Я намерен протестировать этот ответ со всеми этими дистрибутивами, поскольку многие руководства по настройке CUDA для Linux, доступные в Интернете, предназначены либо для устаревших версий Linux, либо для устаревших версий CUDA.

Мне понадобится некоторое время, чтобы это сделать, но я постараюсь сделать это как можно скорее.

Кроме того, я могу изменить этот ответ на вики-сообщество, если кто-то захочет внести свой вклад.

Продолжайте следить за обновлениями. Если у вас есть комментарии, дайте мне знать, написав их ниже.

Связанный контент