【问题标题】:OpenCL works on AMD but not on NvidiaOpenCL 适用于 AMD 但不适用于 Nvidia
【发布时间】:2016-08-25 22:42:58
【问题描述】:

我在 AMD Radeon 5450 上编程,但改用 Nvidia Geforce GT 710,我的代码运行良好,但现在出现错误 -1

clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);

这意味着“未找到设备”,OpenCL 可以在 Nvidia 卡上运行吗?

更多信息:Visual Studios 2012、C++、驱动程序都可以。

GPU Cabs Viewer 说 opencl 已关闭,Nvidia 说它支持 opencl。

【问题讨论】:

  • 可能您仍在查询第一个平台是 intel 或 amd,但没有看到 GT 710。很可能是 intel,因为 amd 可以识别的设备范围更广。也枚举平台或检查是否安装了 nvidia 驱动程序。
  • 您确定为您的显卡安装了最新的 Nvidia GPU 驱动程序吗?
  • 我不这么认为...我刚刚在 GPU Caps Viewer 上进行了测试,但我无法打开 OpenCL,但在 Nvidia 的网站上它说它支持...我可以不知道为什么我不能运行这行代码
  • 驱动是最新的
  • 尽管Nvidia 没有在他们的网站上列出对 OpenCL 的支持,但自 2011 年以来推出的所有 Nvidia 卡都支持它。甚至GT 710。也许旧 AMD 驱动程序中的某些东西仍然存在并且以某种方式干扰。您能否尝试完全删除所有 Nvidia 和 AMD 驱动程序(使用 display-driver-uninstaller 之类的东西并重新安装 Nvidia 驱动程序?

标签: c++ visual-c++ opencl nvidia amd


【解决方案1】:

在安装新驱动程序之前,必须完全卸载 AMD 驱动程序。

http://www.guru3d.com/files-details/display-driver-uninstaller-download.html

【讨论】:

    【解决方案2】:

    另外,在 Windows 上检查注册表参数。

    对于 Nvidia OpenCL:

    HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors "nvopencl64.dll"=dword:00000000 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors "nvopencl32.dll"=dword:00000000

    对于 AMD OpenCL:

    HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors "AMD_OpenCL64.dll"=dword:00000000 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors "AMD_OpenCL32.dll"=dword:00000000

    对于英特尔 OpenCL:

    HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors "IntelOpenCL64.dll"=dword:00000000 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors "IntelOpenCL32.dll"=dword:00000000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多