0

ArrayFire を正常にインストールし、Visual Studio 構成 CUDA_x64 を選択すると、サンプルの helloworld が正常に動作します。ただし、OpenCL_x64 に変更すると、コンパイルは成功しますが、次のような実行エラーが発生します。

/**************************************************** ********************/

ArrayFire Exception (Internal error:998):
In function __cdecl opencl::DeviceManager::DeviceManager(void)
In file src\backend\opencl\platform.cpp:329
OpenCL Error (-2): Device Not Available when calling clCreateContext

In function void __cdecl af::setDevice(const int)
In file src\api\cpp\device.cpp:91

/**************************************************** ********************/

どんな答えでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

-2 はCL_DEVICE_NOT_AVAILABLE、「デバイスが clGetDeviceIDs によって返されたにもかかわらず、デバイス内のデバイスが現在利用できない場合」に発生します。エラーの名前を Google で検索すると、エラーが発生する可能性があるケースを説明している Web ページが多数見つかります。一般的な 2 つの方法は、古いチップで Intel CPU ドライバーを使用すること (最新の Intel OpenCL SDK には SSE 4.2 が必要です)、または利用できない場合に OpenCL/OpenGL 相互運用を要求することです。

于 2016-06-07T12:23:40.133 に答える