AnsweredAssumed Answered

Please compile this

Question asked by maxdz8 on May 5, 2014
Latest reply on May 6, 2014 by maxdz8

Hello,

I start suspecting something with my system could be very wrong. I have the following kernel:

void boom(global uint4 *X)
{
    {
      uint4 tmp;
      tmp = (uint4)(
          (*(X + 1)).x,
          (*(X + 2)).y,
          (*(X + 3)).z,
          (*(X + 0)).w
      );
      *X = tmp;
    }
}





__attribute__((reqd_work_group_size(256, 1, 1)))
kerne
void CompilerBLAST(global uint4 * restrict xeight) {
  boom(xeight);
}

If I compile it as is, everything is nice.

If I remove the global qualifier from LN1, the following happens:

11_52_00-clBoom - CodeXL _ Analyze Mode.png

 

This happens as well in my program if I try to build code like this.

My reading of the OpenCL specification is that unqualified pointers like this get interpreted as private by default and this is thus an invalid pointer cast.

Does this happen only to me?

 

As a side note: is my understanding of qualifiers correct?

Outcomes