Boost logo

Boost :

Subject: Re: [boost] [compute] kernels as strings impairs readability and maintainability
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-12-25 06:19:14

On Thu, Dec 25, 2014 at 1:58 PM, Antony Polukhin <antoshkka_at_[hidden]> wrote:
> There is a possible hack for that case! You'll need two helper header files
> `import.pp` and `end_import.pp`. Something like the following could work
> (not tested).


> That's it. Now if you need that kernel as a string, you just write the
> following:
> #define IMPORT_AS variable_name
> #include "import.pp"
> #include ""
> #include "end_import.pp"

I think raw string literals could make it cleaner:

#define BEGIN_CL "opencl(
#define END_CL )opencl"

const char cl_program[] =
#include ""

// In


<code here>


I wonder how debugging goes in OpenCL though. If the kernel does not
compile or is not working, you probably get pointers to the kernel
string, not the C++ source. Is there a convenient way to translate
between the two?

Boost list run by bdawes at, gregod at, cpdaniel at, john at