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 返回”。您可以谷歌搜索错误的名称,并找到一些描述可能发生这种情况的网页;两种常见的方法是在较旧的芯片上使用英特尔 CPU 驱动程序(最新的英特尔 OpenCL SDK 需要 SSE 4.2),或者在不可用时请求 OpenCL/OpenGL 互操作。

于 2016-06-07T12:23:40.133 回答