2013-10-26 31 views

回答

4

OpenCL可安裝的客戶端驅動程序(ICD)負責爲您服務。無論您安裝了哪個實現,都是一樣的,並將所有實現公開爲單獨的OpenCL「平臺」。

當您撥打電話clGetPlatformIDs它會告訴您已安裝多少個平臺。例如,可能有一個用於AMD,一個用於NVIDIA,另一個用於英特爾。

然後在每個平臺內,您可以撥打clGetDeviceIDs這將返回該平臺內的設備數量。在您的NVIDIA平臺上,您可以找到您的K20,在您的英特爾平臺中,您可以找到您的至強CPU和Xeon Phi協處理器。

如果您構建或下載clInfo實用程序,您會看到所有安裝的平臺和設備以及每個設備的功能的良好轉儲。

+0

謝謝,我爲自己寫了這樣的程序。關鍵之處在於OpenCl能夠看到我所有的平臺,並且自從我更新了英特爾編譯器之後,nvidia不再出現。 – Eric

+0

然後重新安裝NVIDIA驅動程序。聽起來Phi司機可能會覆蓋ICD或(恐怖)不使用ICD。 – Dithermaster

+0

更新任何平臺的驅動程序不應該導致這樣的問題,所以請向英特爾報告此錯誤。 – chippies

0

問題解決了。
望着關鍵目錄:

/etc/OpenCL/vendors/*.icd 

我注意到,對Nvidia所使用的圖書館是這是在差的地方複製,並指向兩個不同版本的鏈接。
我只是用最近的一個,我最近安裝的那個替換了前一個,在這裏我們去了。
Opencl不知道哪一個使用我猜。
這就像安裝位置在兩個nividia版本之間發生了變化。
當我應該在重新安裝之前刪除它,實際上並非如此。
謝謝大家。

+0

我一直在尋找解決這個問題的辦法,但我對你的「謝謝你們所有的地獄」一笑。 =)。無論如何。感謝分享這個解決方案 – McLeary