Quantcast
Channel: OpenCL*
Viewing all articles
Browse latest Browse all 70

How should I view global and local work sizes

$
0
0

I've been using OpenCL for a little while now for hobby purposes. I was wondering if someone could explain how i should view global and local work spaces. I've been playing around with it for a bit but i cannot seem to wrap my head around it.

I have this piece of code, the kernel has a global work size of 8 and the local work size of 4

    __kernel void foo(__global int *bar)
    {    
        bar[get_global_id(0)] = get_local_id(0);
    }

This result in bar looks like this:

{0, 1, 2, 3, 0, 1, 2, 3, 4}

I know why it is happening because of the work sizes I've used. But i can't seem to wrap my head around how i should view this.

Does this mean that there are 4 threads working locally and 8 globally so i have 4 * 8 threads running in total? and if so what makes those 4 working locally special?

Or does this mean the main body of the kernel just has two counters? one from local and one global but what is the point of that?

I know i might be a bit vague and my question might seem dumb. But i don't know how i can use this more optimally and how i should view this?


Viewing all articles
Browse latest Browse all 70

Latest Images

Trending Articles





Latest Images