2

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。プログラムは正しくコンパイルされます。

編集

インストール手順

  1. 最初に x64 ドライバー 14.4 をインストールします。

  2. インストールガイドで推奨されているようにインストールしましたAMD-APP-SDK-v2.9-lnx64.tgz(SDKを解凍してから実行しました)。sudo ./Install-AMD-APP.sh.

  3. 検証済みAMDAPPSDKROOT 'andの LD_LIBRARY_PATH` は正しいです。

  4. へのシンボリックリンクを作成し/usr/lib64/OpenCL/vendors/amd/libOpenCl.so.1ました/use/lib(x64ビットPCであり、何らかの理由でopenclが/ libでx64ドライバーを探すため)
4

1 に答える 1

-1

fglrx少なくともUbuntu 15.04では、またはfglrx-updates依存関係をインストールするだけでよいと思います。コア パッケージには適切な OpenCL ライブラリがすべて含まれています。fglrx がインストールされていれば、AMD SDK ビジネスはまったく必要ないと思います。アンドレアスは有益な情報をたくさん提供してくれます。

dpkg -L fglrx-updates-core | grep -v kcl | grep cl
/usr/bin/atiodcli
/usr/bin/clinfo
/usr/lib/libamdocl12cl64.so
/usr/lib/libamdocl64.so
/usr/lib/libaticalcl.so
/usr/lib32/libaticalcl.so
/usr/lib32/libamdocl32.so
/usr/lib32/libamdocl12cl32.so
/etc/OpenCL/vendors/amdocl64.icd

flgrxドライバーをロードして実行する必要があります。

于 2015-10-10T19:41:22.607 に答える