Я пытаюсь получить CUDA, работающий над моим гибридным графическим ноутбуком. Я использую (l) человечность 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-сервер и init 3.
21 cd Downloads/
22 chmod +x cuda_7.5.18_linux.run
23 sudo ./cuda_7.5.18_linux.run
Установите пакет выполнения со всеми опциями по умолчанию, также установите версию 352 графического драйвера.
Затем настройте переменную ПУТИ.
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
.
Эта информация доступна здесь, см. (в настоящее время) второй ответ на вопрос.
Это все еще не работало, таким образом, я попытался после информации, данной в первом ответе быть выше связанного вопроса, и установил заголовки ядрa:
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
был добавлен после установки заголовков ядрa.
Я выполнил эту команду, я думаю, что мой драйвер вернулся к версии 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 кадр/с?
Я перезапустил свой компьютер снова, и ура он работает.
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
Между прочим, я подозреваю последние шаги, которые я попробовал, на самом деле не требуются, следуя за информацией в вопросе выше, пробуют не выполнение последних шагов:
я думаю, что информация в вопросе могла быть очень полезна для любого (и я) пытающийся установить:
на Linux, конкретно связанное с человечностью распределение;
Это - мое намерение проверить этот ответ со всеми этими распределениями, как много руководств там в сети для подготовки CUDA для Linux или для устаревших версий Linux, или для устаревших версий CUDA.
мне потребуется некоторое время, чтобы сделать это, но я попытаюсь сделать это скоро.
кроме того, я мог бы изменить этот ответ на общественную Wiki, если кто-либо хочет способствовать ему.
Продолжают проверять на обновления. Любые комментарии, сообщенные мне, комментируя ниже.
/etc/profile.d/*.sh
/~/.profile
- то, что синтаксис более прост и что lightdm/gdm являются прощающими в случае ошибок (даже, синтаксические ошибки предотвращают Вас, чтобы войти в систему, но просто привести к предупреждающим сообщениям). – Gunnar Hjalmarsson 31 December 2016 в 13:20