2 Replies Latest reply on Feb 24, 2011 12:59 AM by richeek.arya

    OpenCL kernel arguments without address space qualifiers


      Hi all,

      I was working in OpenCL development and had some conceptual questions.

      In the the OpenCL manual it is written that:

      "All arguments to a __kernel function shall be in the __private
      address space."

      Suppose I take a protoype kernel definition from the sample codes:

      void matrixTranspose(__global float * output,
                           __global float * input,
                           __local  float * block,
                           const    uint    width,
                           const    uint    height,
                           const    uint blockSize

      Now I have two questions in that:

      1. All the aruments preciding with __global and __local are defined in global address space since they explicitly have "global" address qualifier. Is it true?

      2. For rest of the arguments(width, height and blockSize) are they in the __private address space?  Does it mean every thread has copy of those variables?