title: How to parallelize this task using all GPU processors?
body: <p>My Intel GPU has 40 shader units, 64bit width, and support opencl 1.2,  .
  For example I need to calculate something like:</p>
  
  <pre><code>    c[gid] = a[gid] + b[gid];
  </code></pre>
  
  <p>I need to split this task between 40 units evenly.
  How to do it? Also I need suggestions how to optimize some code for specific number of internal GPU processors.
  Full code of example:</p>
  
  <pre><code>from __future__ import absolute_import
  from __future__ import print_function
  import pyopencl as cl
  import pyopencl.array as cl_array
  import numpy
  import numpy.linalg as la
  
  a = numpy.random.rand(50000).astype(numpy.float32)
  b = numpy.random.rand(50000).astype(numpy.float32)
  
  ctx = cl.create_some_context()
  queue = cl.CommandQueue(ctx)
  
  a_dev = cl_array.to_device(queue, a)
  b_dev = cl_array.to_device(queue, b)
  dest_dev = cl_array.empty_like(a_dev)
  
  prg = cl.Program(ctx, """
      __kernel void sum(__global const float *a,
      __global const float *b, __global float *c)
      {
        int gid = get_global_id(0);
        c[gid] = a[gid] + b[gid];
      }
      """).build()
  
  prg.sum(queue, a.shape, None, a_dev.data, b_dev.data, dest_dev.data)
  
  print(la.norm((dest_dev - (a_dev+b_dev)).get()))
  </code></pre>