Hi

I am a beginner with OpenCL and GPU, and have some questions:

1. what is the connection between different work-groups, are they executed one by one or sometimes synchronous?

2. I know a wavefront have 32 or 64 work-items, what is essentially wavefront? a wavefront execute these work-items always synchronous?

3. here is a example about time complexity: I has 10 work-groups, each with 32 work-items, every work-item runs in O(n), what is total time complexity?

is O(10*n) or still O(n)? what about every group has 256 work-items?

Thanks

1. both. each compute unit get one or more work-group and it execute in parallel. if is there more work-groups than compute items can holds they are executed sequential.

2. wavefront is HW equivalent of thread from CPU. that mean workitems can diverge at wavefron size level.

3. in big O notation constant are most of the time omitted. that mean. if you want calculate time complexity on real HW best approach is calculate time complexity in sequential computation and then divide with achievable parallelism factor.