AMD APP包含缺少内核中可用功能和类型的文件

时间:2013-08-19 15:31:38

标签: windows compilation include opencl amd-processor

我正在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库编译的。为什么会这样,我该怎么办呢?

1 个答案:

答案 0 :(得分: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语言文件(虽然没试过)。