Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OpenCL compiler preprocessing definitions?

I am developing OpenCL code on Snow Leopard and understand that the OpenCL just-in-time compilation is done by Clang/LLVM. Is the C preprocessor used at all? Is there a way to set preprocessing definitions with the compiler? What definitions exist?

I would like the code to be aware of whether it is compiled for CPU or GPU so I for instance can use printf statements for debugging.

like image 750
leinz Avatar asked Dec 17 '25 00:12

leinz


1 Answers

the clBuildProgram API takes compiler arguments (the const char * options parameter).

-D MYMACRO is understood, so is -D MYMACRO=value.

As to what predefined macros, see the OpenCL specification for a full list (Section 6.9). A non exhaustive list:

  • __FILE__
  • __LINE__
  • __OPENCL_VERSION__
like image 65
Bahbar Avatar answered Dec 19 '25 17:12

Bahbar