Osx snow leopard OpenCL编译器预处理定义?

Osx snow leopard OpenCL编译器预处理定义?,osx-snow-leopard,opencl,Osx Snow Leopard,Opencl,我正在雪豹上开发OpenCL代码,并了解OpenCL实时编译是由Clang/LLVM完成的。是否使用了C预处理器?有没有办法用编译器设置预处理定义?有什么定义 我想让代码知道它是为CPU还是GPU编译的,这样我就可以使用printf语句进行调试。clBuildProgramAPI采用编译器参数(const char*options参数) 理解了-D MYMACRO,理解了-D MYMACRO=value 关于预定义的宏,请参阅OpenCL规范以获取完整列表(第6.9节)。非详尽清单: \uuu

我正在雪豹上开发OpenCL代码,并了解OpenCL实时编译是由Clang/LLVM完成的。是否使用了C预处理器?有没有办法用编译器设置预处理定义?有什么定义


我想让代码知道它是为CPU还是GPU编译的,这样我就可以使用printf语句进行调试。
clBuildProgram
API采用编译器参数(const char*options参数)

理解了
-D MYMACRO
,理解了
-D MYMACRO=value

关于预定义的宏,请参阅OpenCL规范以获取完整列表(第6.9节)。非详尽清单:

  • \uuuuuuuuuuuuu文件
  • \uuuuuuuuuuuuuuuuuuuuuuuuu
  • \uuuu OPENCL\u版本

您还可以使用OpenCL“预处理器”来定义定义(如在C中):

(注意括号,它们很重要,因为可以在变量中插入任何表达式,并且表达式的计算结果正确)

这有助于提高应用程序的速度

#define dot3(x1, y1, z1, x2, y2, z2) ((x1)*(x2) + (y1)*(y2) + (z1)*(z2))