我正在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库编译的。为什么会这样,我该怎么办呢?
答案 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语言文件(虽然没试过)。