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

时间:2012-04-28 11:27:33

标签: cuda opencl nvidia optimus

我在运行他们的GPU计算SDK(有一个已编译的示例代码库)时运行Nvidia提供的样本时遇到问题。

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

我已经安装了Nvidia的所有三个部分来开发OpenCL - devdriver for win7 64bit v.301.27,cuda toolkit 4.2.9和gpu computing sdk 4.2.9。

我认为这可能与Optimus技术有关,它将Nvidia GPU的输出重新路由到英特尔以渲染东西(这款笔记本还有Intel 3000HD加速器),但在Nvidia控制面板中我设置使用高性能Nvidia GPU,设置功率配置文件更喜欢最高性能,而PhysX我再次从自动选择更改为Nvidia处理器。但是没有任何改变,这些样品将无法运行(甚至不是GF8000卡的目标)。

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

3 个答案:

答案 0 :(得分:2)

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

  1. 安装NVIDIA驱动程序
  2. 转到NVIDIA控制面板
  3. 点击3D设置 - >管理3D设置 - >全局设置
  4. 在首选图形处理器下拉列表中,选择“高性能NVIDIA处理器”
  5. 应用设置
  6. 请注意,上述说明适用于所有应用程序的设置,因此您不必再担心CUDA错误。但它会耗尽更多的电池。

    这也是video recap。祝你好运!

答案 1 :(得分:2)

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

现在我只考虑可以阻止多少应用访问该GPU ..

答案 2 :(得分:1)

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