我試圖讓我的OpenCL項目在Ubuntu中編譯。我有一個兼容的Core i5和AMD HD 5660。在Ubuntu中設置OpenCL
當我執行下面的代碼
cl_int status;
// Retrieve the number of platforms
cl_uint numPlatforms = 0;
status = clGetPlatformIDs(0, NULL, &numPlatforms);
if (status != CL_SUCCESS)
{
std::cout << "Error: Getting platforms!" << std::endl;
std::cin.get();
}
我得到Error: Getting platforms!
當我執行clinfo
,我得到:terminate called after throwing an instance of 'cl::Error \n what(): clGetPlatformIDs'
我使用AMD的驅動程序14.4和SDK 2.9(它被提及在AMD安裝指南中,設置這兩個文件將處理icd和環境變量的註冊)
我做錯了什麼,我無法讓我的編輯工作?
請注意,我正在使用Eclipse以正確的路徑到lib(/opt/AMDAPP/lib/x86_64
)。該程序編譯正確。
EDIT
安裝步驟
第一安裝作爲安裝指南中建議的x64驅動14.4
我安裝
AMD-APP-SDK-v2.9-lnx64.tgz
(解壓SDK和比執行sudo ./Install-AMD-APP.sh.
)。驗證
AMDAPPSDKROOT 'and
LD_LIBRARY_PATH`是正確的。- 創建符號鏈接到
/use/lib
/usr/lib64/OpenCL/vendors/amd/libOpenCl.so.1
(因爲它是一個64位PC,由於某種原因的OpenCL會在/ lib下的x64驅動程序)
Ubuntu的版本是什麼? – osgx
嗨,我使用Ubuntu 13.10和14.04。 ( – user3622675
)您是如何安裝amd驅動程序和sdk的?是否有系統(通過ubuntu的apt-get安裝)amd驅動程序和sdk? – osgx