Во-первых: Я боролся со своим глупым ноутбуком Optimus на человечности 15.10 в течение недели. Так, не делайте "возможного дубликата" меня только путем простого поиска с помощью Google некоторых ключевых слов и не читая все это плюс гиперссылки.
Мой ноутбук имеет Nvidia geforce 740M (Optimus), и мне установили человечность 15.10. Я установил шмеля с драйвером nvidia-355 с помощью инструкций в этой ссылке. Теперь для меня возможно переключиться между видеокартами безупречно, только с использованием optirun:
$ optirun glxgears
6763 frames in 5.0 seconds = 1352.335 FPS
7156 frames in 5.0 seconds = 1431.125 FPS
7152 frames in 5.0 seconds = 1430.255 FPS
и это может быть проверено, если видеокарта Nvidia используется:
cat /proc/acpi/bbswitch
0000:07:00.0 ON
на который после закрытия glxgears будет изменен:
cat /proc/acpi/bbswitch
0000:07:00.0 OFF
ОДНАКО мне действительно нужно использование CUDA в человечности, которая кажется невозможной. Я должен "теоретически" смочь использовать optirun для выполнения cuda примеров после того, как "сделают". но результат (и никакое различие с использованием sudo):
~/NVIDIA_CUDA-7.5_Samples/1_Utilities/deviceQuery$ optirun ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL
Таким образом, я искал снова и добрался для регистрации № 4 на этой странице, которая является для Ubuntu 12.04. В котором предлагается использовать:
$ sudo update-alternatives --config x86_64-linux-gnu_gl_conf
There are 3 choices for the alternative x86_64-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/nvidia-355/ld.so.conf 8604 auto mode
1 /usr/lib/nvidia-355-prime/ld.so.conf 8603 manual mode
2 /usr/lib/nvidia-355/ld.so.conf 8604 manual mode
* 3 /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf 500 manual mode
Press <enter> to keep the current choice[*], or type selection number:
И vadammt предложил выбрать nvidia-355-prime (опция номер 1). Я выбрал, и я смогу использовать
optirun ./deviceQuery
без проблемы. ОДНАКО после выполнения deviceQuery, bbswitch не будет выключать Nvidia ПРОЧЬ автоматически больше:
$ cat /proc/acpi/bbswitch
0000:07:00.0 ON
Я проверил документацию шмеля и кажусь, что "nvidia-355-prime", на самом деле главное Nvidia и что команда используется для переключения от шмеля на главный Nvidia. Таким образом, основные вопросы теперь:
1) Действительно ли это верно, что выбор "nvidia-355-prime" переключается на главный Nvidia?
2) Если да, должен там так или иначе на самом деле иметь CUDA и Шмеля вместе (не полагаясь главный Nvidia)? просто используя "optirun" непосредственно и не получая неизвестную ошибку "cudaGetDeviceCount возвратился 30", который я упомянул?
3) Если не, действительно ли возможно создать сценарий, чтобы автоматизировать процесс переключения между шмелем и главной Nvidia и присвоить команду ему?
4) Какой-либо другой комментарий/предложение/рекомендация/совет/предложение?
5) Спасибо?
Править: изменение на nvidia-355-prime не будет также больше работать :(