3.5 OpenCL work-groups

Work-groups have several properties, limitations and work-items:

Properties of work-groups
  • Work-groups are independent of each other.
  • The OpenCL driver can issue multiple work-groups for execution in parallel.
  • The work-items in a work-group can communicate with each other using shared data buffers. You must synchronize access to these buffers.
Limitations between work-groups
Work-groups typically do not directly share data. They can share data using global memory.
The following are not supported across different work-groups:
  • Barriers.
  • Dependencies.
  • Ordering.
  • Coherency.
Global atomics are available but these can be slower than local atomics.
Work-items in a work-group
The work-items in a work-group can:
  • Access shared memory.
  • Use local atomic operations.
  • Perform barrier operations to synchronize execution points.
    For example:
    barrier(CLK_LOCAL_MEM_FENCE); // Wait for all work-items in
                                   // this work-group to catch up
    After the synchronization is complete, all writes to shared buffers are guaranteed to have been completed. It is then safe for work-items to read data written by different work-items within the same work-group.
Non-ConfidentialPDF file icon PDF versionARM 100614_0300_00_en
Copyright © 2012, 2013, 2015, 2016 ARM. All rights reserved.