2014-06-12 43 views
1

我試圖在我的Intel CPU和Nvidia GPU上同時運行我的OpenCL應用程序,以實現負載平衡。但我有問題,只有Nvidia Plattform被檢測到。Linux Arch OpenCL ICD加載程序 - Nvidia GPU,Intel CPU

我用這個cl.hpp電話:

std::vector<cl::Platform> m_platforms; 
cl::Platform::get(&m_platforms); 

我的系統設置:

  • Linux的拱門3.14.6-1拱
  • 英特爾Haswell的4770K
  • Nvidia的250GTS

安裝包:

  • NVIDIA-libGL函數337.25-1
  • 的OpenCL,NVIDIA 337.25-1
  • NVIDIA 337.25-1
  • 了nvidia-utils的337.25-1
  • 檯面10.2.1-1
  • 的OpenCL -headers12
  • 英特爾的OpenCL-SDK 2014R1-2
  • 的OpenCL-ICD 1.2.11.0-4

兩個平臺(英特爾,Nvidia)都在那裏有/ etc/OpenCL/Vendors中的.icd文件。所以我不知道我可以嘗試最終獲得一個Intel CPU OpenCL平臺的認可。也許你有一些想法?

回答

2

現在,最好卸載這兩個軟件包(intel-opencl-sdk和intel-opencl-runtime)並從AUR安裝beignet。

https://aur.archlinux.org/packages/beignet/

該軟件包提供相同的功能,並允許您還使用了Intel GPU核心。

我可以確認它與其他OpenCL平臺(如NVIDIA提供的)一樣良好地共存,如在具有Optimus功能的華碩G750JM上測試的。目前通過bbswitch進行切換,並通過PRIME和primus卸載GL渲染。一些管道(pyrit)可以在兩個平臺上同時使用OpenCL,從而顯着提高性能。

0

我發現了一個名爲「intel-opencl-runtime」的附加軟件包。 intel-opencl-sdk包含icd文件,但似乎還不足以使Intel平臺運行OpenCL應用程序。爲了能夠使用英特爾平臺運行OpenCL,還需要安裝上述運行時軟件包。