OpenCL プロジェクトを Ubuntu でコンパイルしようとしています。互換性のある Core i5 と AMD HD 5660 があります。
次のコードを実行すると
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 インストール ガイドに記載されているように、これら 2 つのファイルをセットアップすると、icd と環境変数の登録が処理されます)。
プログラムを動作させることができないというのは、何が間違っているのでしょうか?
lib()への正しいパスでEclipseを使用していることに注意してください/opt/AMDAPP/lib/x86_64
。プログラムは正しくコンパイルされます。
編集
インストール手順
最初に x64 ドライバー 14.4 をインストールします。
インストールガイドで推奨されているようにインストールしました
AMD-APP-SDK-v2.9-lnx64.tgz
(SDKを解凍してから実行しました)。sudo ./Install-AMD-APP.sh.
検証済み
AMDAPPSDKROOT 'and
の LD_LIBRARY_PATH` は正しいです。- へのシンボリックリンクを作成し
/usr/lib64/OpenCL/vendors/amd/libOpenCl.so.1
ました/use/lib
(x64ビットPCであり、何らかの理由でopenclが/ libでx64ドライバーを探すため)