我正在尝试在我的英特尔CPU和Nvidia GPU上同时运行我的OpenCL应用程序以实现负载平衡。但我遇到的问题是只检测到Nvidia Plattform。
我使用这个cl.hpp调用:
std::vector<cl::Platform> m_platforms;
cl::Platform::get(&m_platforms);
我的系统设置:
已安装的软件包:
两个平台(Intel,Nvidia)都在/ etc / OpenCL / Vendors中有.icd文件。因此,我不知道我可以尝试最终获得英特尔CPU OpenCL平台的认可。也许你有一些想法?
答案 0 :(得分:3)
目前,最好卸载这两个软件包(intel-opencl-sdk和intel-opencl-runtime)并从community repository安装beignet。
sudo pacman -S --needed beignet
该软件包提供相同的功能,并允许您使用英特尔GPU核心。
我可以确认它与其他OpenCL平台共存,例如NVIDIA提供的平台,在具有Optimus功能的华硕G750JM上进行了测试。目前通过bbswitch切换并通过PRIME和primus卸载GL渲染。
某些管道(pyrit)可以在两个平台上同时使用OpenCL,从而显着提升性能。
答案 1 :(得分:0)
我找到了另一个名为&#34; intel-opencl-runtime &#34;的软件包。 intel-opencl-sdk包含icd文件,但似乎不足以能够使用Intel平台运行OpenCL应用程序。为了能够使用Intel平台运行OpenCL,还必须安装上述运行时包。