-1

我正在 Windows7 + Cygwin + AMD APP(几周前下载)上编写 OpenCL 代码。我的代码有效,但是 - 头文件中缺少一些内核可访问的函数,例如:

void barrier(cl_mem_fence_flags flags)

event_t async_work_group_copy(
    __local gentype *dst,
    const __global gentype *src,
    size_t  num_gentypes,
    event_t event)

以及event_t数据类型。就像我说的,这不会阻止编译,因为内核不是由我的 C 编译器编译的,而是由 OpenCL 库编译的。为什么会出现这种情况,我该怎么办?

4

1 回答 1

2

总结一下:

OP 正在搜索定义内核中使用的 OpenCL C 函数的头文件,因为 IDE 可以使用这些头文件来突出显示代码、自动完成、发现语法错误等。这不是 OpenCL 标准的一部分,因此AMD APP SDK在头文件中提供了一些功能,这对OP来说是幸运的。

答案:

解决此 IDE 要求的正确方法是通过专门构建的 OpenCL C IDE 或通过您最喜欢的 IDE 的插件。我不知道有什么好的插件,所以剩下的就是特殊的 IDE。对于 AMD GPU 和 CPU,您可以使用作为 AMD APP SDK 一部分提供的 KernelAnalyzer。但是,这不适用于没有 AMD GPU 的系统(缺少特定的 .dll)。在这种情况下,您可以尝试OpenCL Studio。请注意,由于与 11.9 之后的 Catalyst 驱动程序不兼容,这在 AMD GPU 上不起作用。最后,Notepad++ 确实有一个用于 OpenCL 1.0 的用户定义语言文件(虽然没有尝试过)。

于 2013-08-21T16:38:29.393 回答