2016-01-23 43 views
1

我在配備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 

我似乎無法找到任何解決方案。問題是什麼?

回答

1

根據此web page,您的AMD CPU FX-8350不支持AMD APP SDK 3.0(OpenCL 2.0)。

其中列出的所有設備都是具有集成圖形核心(APU)的GPU或CPU。所以,我不希望你的CPU將在不久的將來得到支持,因爲OpenCL主要是爲了在更快的GPU(部分)上運行內核代碼而設計的。

+0

我知道x86_64 AMD處理器支持OpenCL,但正如你所說,顯然AMD APP SDK 3.0不支持所述處理器。所以,我安裝了2.8版本,它的工作!謝謝 –

+0

只是一個評論:顯然,在Linux上使用受支持的AMD CPU執行OpenCL代碼時,每次都會看到以下文本: '將實際/有效用戶ID設置爲0/0失敗 modprobe:FATAL:Module找不到fglrx。 錯誤!無法加載fglrx內核模塊!也許你可以切換到root用戶直接加載內核模塊# 是的,AMD是古怪的。 –

+0

@MiguelÁngelGuillénHernández我也用我的AMD GPU試過'fglrx'驅動,但是也失敗了。也許,你的問題是你實際上有一個NVIDIA GPU。 APP SDK只適用於我的Windows機器。 –