Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AMD wavefront vs. workgroup

Tags:

gpgpu

opencl

I'm a little confused about terms of an AMD wavefront and workgroupsize of OpenCL. I found different sources were different statements are done.

My question is: How much is the wavefront-size of AMDs GCN technology and according to this: How big should a workgroup on opencl at least be to not waste occupancy.

The information i got out of this document of amd is, that the wavefront-size of GCN is 16. I can run 4 wavefronts on CU at a time and there is a maximum of 40 in-flight wavefronts per cu. so what i imply out of this is, that a workgroup should be at least of size 16 in opencl.

But the common information (for example in this or this) is that wavefrontsize is 64 and according to this workgroupsize should be at least 64 an if higher a multiple of 64. This is also what matches with the meassurements on my kernel, which are that with workgroupsize 64 i get highest performance, for everything below 64 its getting worse.

Thanks very much for clarification.

like image 366
user3507003 Avatar asked Aug 02 '15 10:08

user3507003


1 Answers

You got it out wrong. Read this document carefully once again. SIMD unit has got 16 work items and wavefront size is 64 work items. Here are the important quotes:

page 3:

In GCN, each CU includes 4 separate SIMD units for vector processing. Each of these SIMD units simultaneously executes a single operation across 16 work items, but each can be working on a separate wavefront.

page 5:

This is essential for wavefront control flow; for example, comparisons will generate a result for each of the 64 work-items in a wavefront.

like image 67
doqtor Avatar answered Nov 19 '22 09:11

doqtor