CUDA在Ubuntu 11.10/12.04上出现“无兼容设备”错误

4

我一直在尝试在我的笔记本电脑上设置Ubuntu环境,以进行CUDA编程。我当前正在双启动Windows 8和Ubuntu 12.04,并希望在Ubuntu上安装CUDA 5。

笔记本电脑配备了GeForce GT 640M显卡(完整规格请参见下文)。这是一个Optimus卡。

最初我是在双启动的Ubuntu 11.10上进行操作,并尝试了11.10和12.04的教程。

我尝试了许多各种各样的教程,包括此教程。安装过程显示设备驱动程序正在安装和工具包正在安装,示例失败,但是当我尝试在NSight中测试一个简单的Vector Add CUDA程序时,“没有兼容的CUDA设备”错误被抛出。

Ubuntu详细信息仍然显示“未知”的图形。

建议?

笔记本电脑规格: Acer V3-771G Intel Core i7 2670QM nVidia GeForce GT 640M 2GB - Optimus 16GB DDR3-1600 RAM 120GB SSD + 500GB HDD + 32GB Cache SSD

4个回答

2
由于这是一个Optimus设备,要使用NVIDIA GPU,需要一些额外的步骤。虽然不是必须的,但我建议您使用Bumblebee包装程序,因为它是最简单的解决方案。
安装Bumblebee包装程序后,您可以使用“optirun programname”运行程序或启动激活了NVIDIA卡的shell:“optirun bash --login”。
另一个好处是,当GPU未运行时,Bumblebee守护进程会禁用GPU,从而节省电池寿命。
如果您不关心电池寿命,只想始终启用CUDA而无需包装命令,则可以加载NVIDIA内核模块,然后手动创建必要的设备节点。
mknod /dev/nvidia0 c 195 0
mknod /dev/nvidiactl c 195 255

这种高级方法可以让你在控制台上运行cuda程序,而无需启动Xorg,例如当你通过SSH连接到一个没有运行X服务器的机器时。
另请参见https://askubuntu.com/questions/131506/how-can-i-get-nvidia-cuda-or-opencl-working-on-a-laptop-with-nvidia-discrete-car,这里有更详细的讨论。

欧里卡!按照您提供的链接中的说明,删除nvidia驱动程序并安装Bumblebee使我能够识别图形硬件。(Ubuntu详细信息显示“Intel Sandy Bridge Mobile”)发出命令“optirun nsight”使nsight能够找到GPU!非常感谢! - medge
救星啊!真希望我早点找到你的答案! - alap

0

首先安装以下库和工具:

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

接下来我们将黑名单一些模块(驱动程序),在终端输入:

sudo gedit /etc/modprobe.d/blacklist.conf

请在文件末尾添加以下内容(每行一个,如下所示):
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

保存文件并关闭编辑器。 现在我们想要在终端中清除任何nvidia残留物:

sudo apt-get remove --purge nvidia*

接下来,您需要重新启动计算机( sudo reboot )。

0)在登录屏幕上按Ctrl + Alt + F1(您无需登录,我们以后仍需重启),然后登录。

1) sudo service lightdm stop

2) cd Downloads

3) chmod +x devdriver* .run (您的驱动程序文件名)

4) sudo ./devdriver* .run

您可能需要运行驱动程序安装程序一次,重新启动(它将删除nouveau驱动程序),然后再次重复步骤。遵循安装程序说明即可,当询问时要选择:是的,您确实需要32位库,并且确实希望更改xorg.conf文件。

安装程序完成后,请重新启动( sudo reboot )。 就完成了: ]

为了安装SDK和Toolkit,请使用已下载文件的步骤3和4( .run )。


这些几乎是我已经尝试过的教程链接中概述的确切步骤。不过还是谢谢您的回复:] - medge

0
理论上,CUDA 5.5附带的驱动程序应该本地支持Optimus(以及非Optimus笔记本电脑的单GPU调试)。我还没有尝试过,因为我正在等待一台支持内核递归和HyperQ的计算3.5 Optimus笔记本电脑。理论上,HP Envy 15t-j000具有GT 740m的GK208版本,但我真的更喜欢像即将推出的Acer S3-392 with GT 735m这样的超极本形态。 GTC的NVIDIA团队向我保证,Optimus应该可以在CUDA 5.5 RC中正常工作。我发现了本月发布的“Linux CUDA入门指南”,其中提供了一些标志,以正确安装Optimus驱动程序:

http://www.google.com/url?q=http://developer.download.nvidia.com/compute/cuda/5_5/rc/docs/CUDA_Getting_Started_Linux.pdf

另外,关于在笔记本电脑上使用GK208芯片和计算能力3.5的更多信息:

https://devtalk.nvidia.com/default/topic/546357/sounds-like-gk208-laptops-cards-will-support-most-sm_35-features/

有人在Linux下使用CUDA 5.5和Optimus笔记本电脑取得了成功吗?


0

尝试使用命令sudo apt-get install mesa-utils

查看图形是否被识别,然后尝试安装cuda。

如果第一个命令无法识别,请尝试:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接