linux - 当我使用 GTX 590 在 Ubuntu 10.04 上运行 cuda 代码时,我得到 "Runtime API error : invalid device ordinal."

标签 linux ubuntu cuda nvidia

我正在尝试在配备 GeForce GTX 590 的 Ubuntu 10.04 系统上运行 cuda 应用程序。
我正在使用 295.41 驱动程序。我已经使用此代码设置了 3 个其他系统,并且都可以正常工作。其中两个有 GT 640,一个有 GTX 480(或 460 - 我不太记得了)。我以前用相同的硬件在这台机器上运行过 cuda 代码,但它已经被格式化了。

我在运行我的代码以及运行 SDK 示例时收到无效设备序号错误。我用 gentoo 设置了这台机器并得到了这个错误 - 我认为它可能与操作系统有关所以我安装了 ubuntu 并遇到了同样的问题。我想不出还有什么可以尝试的。有人有什么建议吗?

下面是一些可能有用的输出。

user@pchan1:~$ lspci | grep nVidia
02:00.0 PCI bridge: nVidia Corporation Device 05b1 (rev a3)
03:00.0 PCI bridge: nVidia Corporation Device 05b1 (rev a3)
03:02.0 PCI bridge: nVidia Corporation Device 05b1 (rev a3)
06:00.0 PCI bridge: nVidia Corporation Device 05b9 (rev a3)
07:00.0 PCI bridge: nVidia Corporation Device 05b9 (rev a3)
07:02.0 PCI bridge: nVidia Corporation Device 05b9 (rev a3)
08:00.0 3D controller: nVidia Corporation Device 1088 (rev a1)
08:00.1 Audio device: nVidia Corporation Device 0e09 (rev a1)
09:00.0 VGA compatible controller: nVidia Corporation Device 1088 (rev a1)
09:00.1 Audio device: nVidia Corporation Device 0e09 (rev a1)

user@pchan1:~$ ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 2012-10-30 10:22 /dev/nvidia0
crw-rw-rw- 1 root root 195, 1 2012-10-30 10:22 /dev/nvidia1
crw-rw-rw- 1 root root 195, 255 2012-10-30 10:22 /dev/nvidiactl

编辑: 当我让这个系统工作时,我使用的是 64 位操作系统和 64 位驱动程序。我现在使用的是 32 位操作系统和 32 位驱动程序。

另一个编辑:

非常感谢 Przemyslaw Zych。你帮我解决了问题。 我不得不通过执行以下操作将 Nouveau 列入黑名单。 在/etc/modprobe.d 中添加一个名为 blacklist-nouveau.conf 的文件(只是 .conf 结尾很重要)并在该文件中放入以下两行。
黑名单新手
选项 nouveau modeset=0
按照以下指南
ftp://download.nvidia.com/XFree86/Linux-x86_64/256.44/README/commonproblems.html

问题解决:)

最佳答案

正如 Przemyslaw Zych 所说,还有另一个驱动程序使用 GPU(在本例中为 nouveau)。
要使用 nvidia 驱动程序 nouveau 必须禁用。该程序在此处列出 - ftp://download.nvidia.com/XFree86/Linux-x86_64/256.44/README/commonproblems.html - 我将在下面进行总结。

在/etc/modprobe.d 中创建一个名为 blacklist-nouveau.conf 的文件
添加以下两行:
黑名单新手
选项 nouveau modeset=0
然后重新启动电脑。这应该可以防止 nouveau 加载并允许使用 nvidia 驱动程序。

关于linux - 当我使用 GTX 590 在 Ubuntu 10.04 上运行 cuda 代码时,我得到 "Runtime API error : invalid device ordinal.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135459/

相关文章:

linux - RMAN 命令未在 .sh 文件中执行

linux - Eclipse 中的字体

python - ctypes 结构,字节对齐

synchronization - 删除线程后我可以使用 __syncthreads() 吗?

python - XLWT可以在Linux平台上工作吗?

android - 如何重置android/data/data/com.xxx.xxx权限linux?

linux - 谁能告诉我为什么需要输入才能返回提示?

regex - sed string 如果部分字符串匹配,则替换整个单词,但不影响字符串后面的单词

memory - 从版本 285 开始,nvidia 驱动程序中的 cudaMalloc 速度严重减慢

linux - CUDA 链接器错误 : undefined reference to main