无法在 GeForce 540M 上运行 CUDA 或 OpenCL

Posted

技术标签:

【中文标题】无法在 GeForce 540M 上运行 CUDA 或 OpenCL【英文标题】:Can't run CUDA nor OpenCL on GeForce 540M 【发布时间】:2012-05-08 22:26:49 【问题描述】:

我在运行 Nvidia 在其 GPU Computing SDK 中提供的示例时遇到问题(有一个编译示例代码库)。

对于 cuda,我收到消息“未检测到支持 CUDA 的设备”,对于 OpenCL,应该找到支持 OpenCL 的单元的函数出现错误。

我已经安装了来自 Nvidia 的所有三个部分,以便使用 OpenCL 进行开发 - win7 64bit v.301.27 的 devdriver、cuda 工具包 4.2.9 和 gpu 计算 sdk 4.2.9。

我认为这可能与将输出从 Nvidia GPU 重新路由到 Intel 以进行渲染的 Optimus 技术有关(此笔记本还具有 Intel 3000HD 加速器),但在 Nvidia 控制面板中,我设置为使用高性能 Nvidia GPU,设置电源profile 更喜欢最高性能,对于 PhysX,我再次从自动选择更改为 Nvidia 处理器。但是没有任何改变,这些样本不会运行(甚至那些针对 GF8000 卡的样本也不会运行)。

我想稍微玩一下 OpenCL,看看它有什么能力,但没有能力测试它没用的东西。我在论坛上找到了一些关于此的信息,但主要是关于需要 Bumblebee 访问 Nvidia GPU 的 linux 用户。但是在 Windows 上没有这样的问题,驱动程序更好,所以你可以在没有黑魔法的情况下访问它(或者在我发现这个问题之前我是这么认为的)。

【问题讨论】:

设备查询说什么?相同?还是这个结果来自设备查询?更重要的是:你读过NVIDIA CUDA Developer Guide for NVIDIA Optimus Platforms吗? 【参考方案1】:

我的笔记本电脑也有 GeForce 540M,采用 Optimus 配置,因为我的 Sandy Bridge CPU 也有 Intel 的集成显卡。要运行 CUDA 代码,我必须:

    安装 NVIDIA 驱动程序 转到 NVIDIA 控制面板 点击 3D 设置 -> 管理 3D 设置 -> 全局设置 在首选图形处理器下拉菜单中,选择“高性能 NVIDIA 处理器” 应用设置

请注意,上述说明会将设置应用于所有应用程序,因此您不必再担心 CUDA 错误。但它会消耗更多的电量。

这里也是video recap。祝你好运!

【讨论】:

感谢您的回答,但正如您在我的问题中看到的那样,我已经在控制面板中设置了全局设置以使用 Nvidia GPU(高性能处理器)。我还安装了最新的开发者驱动程序。好吧,也许我可以运行 OpenCL,当我无法运行官方示例代码时,我只是不鼓励编写一些代码。你尝试运行这些代码吗?它们带有 GPU 计算 sdk.. 可能官方代码没有考虑擎天柱平台。【参考方案2】:

好的,这已被证明是完全疯狂的解决方案。我在想,如果硬件和应用程序之间没有挂钩,我唯一想到的就是 AV 软件。我正在使用 Comodo 和沙盒和 Defense+,关闭它们后我可以运行所有这些样本。更重要的是,只有 Defense+ 需要关闭。

现在我只想想想有多少应用程序可能被阻止访问该 GPU..

【讨论】:

【参考方案3】:

这很可能是因为 Optimus 的架构。所以我建议你阅读 NVIDIA CUDA Developer Guide for NVIDIA Optimus Platforms,尤其是“查询 CUDA 设备”部分,我相信它解决了这个问题。

【讨论】:

以上是关于无法在 GeForce 540M 上运行 CUDA 或 OpenCL的主要内容,如果未能解决你的问题,请参考以下文章

CUDA 内核在 2 个不同的 GPU 上产生不同的结果(GeForce 8600M GT 与 Quadro FX 770M)

如何在未安装 CUDA 工具包的机器上运行已编译的 CUDA 代码?

使用 CUDA 7.5 在 GeForce GTX Titan X 上的训练时间

适用于 Windows 8.1 的 Nvidia GeForce 驱动程序无法在 Windows 10 上运行 [关闭]

如何使用CUDA加速MATLAB计算速度?

深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow