It is possible to use printf inside an OpenCL CPU kernel on OSX; however, remember to cast the string literal operand to (char const*) pointer to get it to compile.
Further, when running an OpenCL using program it is possible to force error logging to stdout (e.g. for .cl compile errors) via
CL_LOG_ERRORS=stdout program Args
Musings, work notes, web links and general trivia related to computer programming in a variety of areas. Random things I happen to find interesting or important
Sunday, 26 August 2012
Wednesday, 22 August 2012
Disassemble
There is an offline compiler for OpenCL included in OSX 10.7, at /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/openclc
This is pretty much a standard clang executable, and accepts common clang options. Sample arguments of interest,
-O3 -x cl -triple i386-applecl-darwin -S < loop.cl
Shows the assembly code for an OpenCL kernel.
-x cl -triple i386-applecl-darwin -emit-llvm < loop.cl
Shows the LLVM textual-IR for a kernel.
The official documentation and example of this suggest the use of generating LLVM bit code offline, for 32 and 64 bit CPU and 32 bit GPU. More useful advice included in the OpenCL Mac programming guide.
This is pretty much a standard clang executable, and accepts common clang options. Sample arguments of interest,
-O3 -x cl -triple i386-applecl-darwin -S < loop.cl
Shows the assembly code for an OpenCL kernel.
-x cl -triple i386-applecl-darwin -emit-llvm < loop.cl
Shows the LLVM textual-IR for a kernel.
The official documentation and example of this suggest the use of generating LLVM bit code offline, for 32 and 64 bit CPU and 32 bit GPU. More useful advice included in the OpenCL Mac programming guide.
Subscribe to:
Posts (Atom)