Hey guys, I am just starting using OpenCl, and have been programming c++ for awhile. I just have some general questions on workgroups.

If I specify a number of workgroups in EnqueueNDRangeKernel, does it automatically split my work?

If so, as long as I dont have any "local" code, my kernel will still work?

Also, can I still use get_global_id(), or should I use something else that is quicker?

I am passing a large array of floats into global memory, but the access has to be faster, so I am trying to cut the NDRange into workgroups, so that multiple workgroups are accessing global memory. I just dont know if it will access everything the same way...