【问题标题】:OpenCL Nvidia and Intel platforms on one machine一台机器上的 OpenCL Nvidia 和 Intel 平台
【发布时间】:2014-07-02 01:42:02
【问题描述】:

我正在使用具有 CPU Intel Xeon (E5-2620)、Intel MIC (5110P) 和 GPU Nvidia K20m 的服务器。 我的 OpenCL 代码能够看到每个平台(Nvidia 和 Intel)的每个设备。
出于某种原因,我现在只能看到 Intel 设备。
我想不通的是我使用 Nvidia OpenCL 库编译我的代码。
/etc/OpenCL/vendors/nvidia.icd 文件内容正确。
在我的代码中,我明确指定了 OpenCL 的 Nvidia 库。
看来我们的管理员重新安装或更新了驱动程序,从那以后它就不再起作用了。

我也尝试了测试代码 clInfo.c 并遇到了同样的问题。

这是我的构建方式:

gcc -w -lOpenCL clInfo.c

输出如下所示:

./a.out: /usr/lib64/nvidia/libOpenCL.so.1: no version information available (required by ./a.out)
Found 1 platform(s).
platform[0xa69cc0]: profile: FULL_PROFILE
platform[0xa69cc0]: version: OpenCL 1.2 LINUX
platform[0xa69cc0]: name: Intel(R) OpenCL
platform[0xa69cc0]: vendor: Intel(R) Corporation
... 

有人可以解释一下吗?
谢谢。

【问题讨论】:

  • 您如何在clInfo.c 中扫描平台?您的配置发生了什么变化,导致它自发停止工作?
  • 它应该可以通过 ICD 机制工作,并且你让它工作过一次。某些驱动程序安装可能会在 ICD 上被踩踏。尝试安装缺少的系统驱动程序,看看它是否修补了 ICD 表。
  • @Tom 我使用 clGetPlatformIDs 和 clGetDeviceIDs。我不知道到底发生了什么,管理员重新安装了我猜的驱动程序。由于他现在不在,我必须自己考虑一下。
  • @Dithermaster 谢谢,如何检查 ICD 的状态。您的意思是重新安装 Nvidia 驱动程序?
  • @Eric 对不起,我不知道 ICD 表在 Linux 下是如何工作的。在 Windows 下,条目存储在注册表中。由于缺少 NVIDIA,我会尝试安装它。

标签: opencl nvidia intel


【解决方案1】:

实际上,我卸载了驱动,发现有一些冲突。
然后我安装了最新版本,现在可以正常使用了。
感谢大家的帮助。

【讨论】:

  • Arch linux 上同样的问题。我安装了 CUDA 和 OpenCL-nvidia。 pacman -R cuda,现在一切正常。
猜你喜欢
  • 2015-06-02
  • 2015-12-07
  • 2023-03-21
  • 1970-01-01
  • 2018-07-21
  • 2021-02-03
  • 1970-01-01
  • 2019-02-19
  • 2016-02-21
相关资源
最近更新 更多