当 运行 针对具有 CUDA 功能 5.0 的设备时,以编程方式加载 PTX returns 错误 209

Loading a PTX programatically returns error 209 when run against device with CUDA capability 5.0

我正在尝试使用 CUDA SDK 中的 ptxjit 示例作为仪器与 GPU 设备交互的基础。

我已成功编译检测代码,并控制设备加载和执行具有 CUDA 功能 2.0 的 Geforce GT440 的 PTX 模块。

在具有 CUDA 功能 5.0 的 Geforce 830M 系统(使用大黄蜂控制离散 GPU 的笔记本电脑)系统上编译相同的检测代码时,代码编译但给出 209(CUDA_ERROR_NO_BINARY_FOR_GPU)。

我尝试编译内核以兼容CUDA capability 5.0,但没有成功,仍然是同样的错误。

有什么想法吗?

最后是驱动的问题。它似乎只影响用于使用具有 CUDA Capability 5.0 的 GPU 加载 PTX 代码的函数。

我删除了所有最近更新的nvidia驱动包,并安装了CUDA SDK自带的驱动和OpenGL库。 SDK 7.5 的驱动程序版本为 352.39,使用此驱动程序,原始的 ptxjit 示例和修改后的示例都可以像在其他系统上一样完美地执行。

我没有任何具有 CUDA 功能 3.0 的 GPU 来测试是否会出现同样的问题,另外,我没有将我的桌面更新到 367.44 驱动程序以查看它是否会破坏 ptxjit 示例。

目前,解决方案是保留 CUDA SDK 附带的驱动程序并关闭来自 nvidia 存储库的更新。