15.10 + 擎天柱 + 大黄蜂 + CUDA

15.10 + 擎天柱 + 大黄蜂 + CUDA

首先:我已经在 ubuntu 15.10 上为我愚蠢的 optimus 笔记本电脑苦苦挣扎了一周。所以,不要仅仅通过谷歌搜索一些关键词而“可能重复”我,而不要阅读整个内容和超链接。

我的笔记本电脑有 nvidia geforce 740M (optimus),安装了 ubuntu 15.10。我按照以下说明安装了带有 nvidia-355 驱动程序的 bumblebee链接。现在我可以使用 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

但是,我确实需要在 ubuntu 中使用 CUDA,这似乎是不可能的。“理论上”我应该能够在“make”之后使用 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

我查看了 bumblebee 文档,似乎“nvidia-355-prime”实际上是 nvidia-prime,并且该命令用于从 bumblebee 切换到 nvidia-prime。所以现在的主要问题是:

1)选择“nvidia-355-prime”是否会切换到nvidia-prime?

2) 如果是,那么有没有办法将 CUDA 和 Bumblebee 真正地结合在一起(而不依赖于 nvidia-prime)?只需直接使用“optirun”,而不会出现我提到的未知错误“cudaGetDeviceCount 返回 30”?

3)如果没有,是否可以创建一个脚本来自动执行 bumblebee 和 nvidia prime 之间的切换过程并为其分配命令?

4) 还有其他意见/建议/推荐/忠告/提案吗?

5)谢谢?

编辑:更改为 nvidia-355-prime 也不再起作用 :(

相关内容