Linux Arch OpenCL ICD 加载器 - Nvidia GPU、Intel CPU
Posted
技术标签:
【中文标题】Linux Arch OpenCL ICD 加载器 - Nvidia GPU、Intel CPU【英文标题】:Linux Arch OpenCL ICD Loader - Nvidia GPU, Intel CPU 【发布时间】:2014-08-03 02:06:27 【问题描述】:我正在尝试同时在我的 Intel CPU 和 Nvidia GPU 上运行我的 OpenCL 应用程序以实现负载平衡。但我的问题是只检测到 Nvidia 平台。
我使用这个 cl.hpp 调用:
std::vector<cl::Platform> m_platforms;
cl::Platform::get(&m_platforms);
我的系统设置:
Linux Arch 3.14.6-1-ARCH 英特尔 Haswell 4770K 英伟达 250GTS已安装的软件包:
nvidia-libgl 337.25-1 opencl-nvidia 337.25-1 英伟达 337.25-1 nvidia-utils 337.25-1 台面 10.2.1-1 opencl-headers12 intel-opencl-sdk 2014R1-2 opencl-icd 1.2.11.0-4两个平台(英特尔、英伟达)在 /etc/OpenCL/Vendors 中都有 .icd 文件。所以我不知道我可以尝试什么最终让英特尔 CPU OpenCL 平台得到认可。也许你有一些想法?
【问题讨论】:
【参考方案1】:目前,最好卸载这两个软件包(intel-opencl-sdk 和 intel-opencl-runtime)并从 community repository 安装 beignet。
sudo pacman -S --needed beignet
该软件包提供相同的功能,并允许您使用 Intel GPU 内核。
在支持 Optimus 的 ASUS G750JM 上进行了测试,我可以确认它可以与其他 OpenCL 平台(例如 NVIDIA 提供的平台)很好地共存。目前通过 bbswitch 切换并通过 PRIME 和 primus 卸载 GL 渲染。
一些管道 (pyrit) 可以在两个平台上同时使用 OpenCL,从而显着提升性能。
【讨论】:
【参考方案2】:我发现了一个名为“intel-opencl-runtime”的附加包。 intel-opencl-sdk 包含 icd 文件,但它似乎不足以在英特尔平台上运行 OpenCL 应用程序。为了能够使用英特尔平台运行 OpenCL,还需要安装上述运行时包。
【讨论】:
以上是关于Linux Arch OpenCL ICD 加载器 - Nvidia GPU、Intel CPU的主要内容,如果未能解决你的问题,请参考以下文章
Failed to load OpenCL runtime 解决