我在配備OpenSUSE Leap x86_64的PC上安裝了AMD FX-8350 CPU和NVIDIA GeForce GTX 960 GPU。我想與CUDA和OpenCL合作,所以我首先安裝了Cuda Toolkit 7.5。這工作得很好。AMD APP SDK(OpenCL)無法檢測到AMD CPU
然後,我安裝了AMD APP SDK 3.0,因爲我想在AMD CPU上使用OpenCL。看起來,這工作得很好。 $AMDAPPSDKROOT
回波/opt/AMDAPPSDK-3.0
和$LD_LIBRARY_PATH
回波/opt/AMDAPPSDK-3.0/lib/x86_64/
。
在那之後,我編譯和運行一個基本DEVICEQUERY代碼(基本上this one,但修改以顯示平臺名稱),用下面的命令:
gcc -L$AMDAPPSDKROOT/lib/x86_64/ -I$AMDAPPSDKROOT/include anotherDeviceQuery.c -lOpenCL
的代碼編譯和執行,但是輸出只顯示NVIDIA GPU信息。
Platform NVIDIA CUDA found.
1. Device: GeForce GTX 960
1.1 Hardware version: OpenCL 1.2 CUDA
1.2 Software version: 352.39
1.3 OpenCL C version: OpenCL C 1.2
1.4 Parallel compute units: 8
我似乎無法找到任何解決方案。問題是什麼?
我知道x86_64 AMD處理器支持OpenCL,但正如你所說,顯然AMD APP SDK 3.0不支持所述處理器。所以,我安裝了2.8版本,它的工作!謝謝 –
只是一個評論:顯然,在Linux上使用受支持的AMD CPU執行OpenCL代碼時,每次都會看到以下文本: '將實際/有效用戶ID設置爲0/0失敗 modprobe:FATAL:Module找不到fglrx。 錯誤!無法加載fglrx內核模塊!也許你可以切換到root用戶直接加載內核模塊# 是的,AMD是古怪的。 –
@MiguelÁngelGuillénHernández我也用我的AMD GPU試過'fglrx'驅動,但是也失敗了。也許,你的問題是你實際上有一個NVIDIA GPU。 APP SDK只適用於我的Windows機器。 –