title: OpenCL: work group concept
body: <p>I don't really understand the purpose of Work-Groups in OpenCL.</p>
  
  <p>I understand that they are a group of Work Items (supposedly, hardware threads), which ones get executed in parallel.</p>
  
  <p>However, why is there this need of coarser subdivision ? Wouldn't it be OK to have only the grid of threads (and, <em>de facto</em>, only one W-G)?</p>
  
  <p>Should a Work-Group exactly map to a physical core ? For example, the TESLA c1060 card is said to have 240 cores. How would the Work-Groups map to this??</p>
  
  <p>Also, as far as I understand, work-items inside a work group can be synchronized thanks to memory fences. Can work-groups synchronize or is that even needed ? Do they talk to each other via shared memory or is this only for work items (not sure on this one)?</p>