Jump to content
  • Advertisement
Sign in to follow this  
jakovo

What is a wavefront?

This topic is 1071 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Looking at AMD's documentation on GCN architecture ( http://developer.amd.com/community/blog/2014/05/16/codexl-game-developers-analyze-hlsl-gcn/ ) it is a little confussing what exactly a wavefront is.

 

It says:

 

 

 

Work is performed on the SIMDs in groups of 64 work-items (i.e. 64 threads) called wavefronts.

 

 

 

Ok, so a thread is a wavefront... but later on it says:

 

 

 

The value in a particular SGPR is shared across all threads in a wavefront.

 

 

 

Ok, so... a thread is not a wavefront as the sentence before, but a wavefront can have multiple threads...

 

 

 

There are two other factors that determine the number of simultaneous wavefronts for a shader.

 

 

 

So... a shader has different wavefronts (and wavefronts have threads).

 

 

 

Also, a little bit confusing, it says that:

 

 

 

Each SIMD supports a maximum of 10 simultaneous wavefronts in flight

 

 

 

But this contradicts with the 64 mentioned on the first quote...

 

Can someone explain?

 

Thanks!

Share this post


Link to post
Share on other sites
Advertisement

Oh!... I see... I was misinterpreting the first quote... 

 

Your explanation makes perfect sense now.... thanks Hodgman.

Share this post


Link to post
Share on other sites

You'll often hear the number of wavefronts that can run simultaneously for a shader as shader occupancy or wavefront occupancy.

High occupancy is obviously better than low occupancy so reducing register count for your shaders on GCN is worthwhile. Doing things like avoiding unrolling loops can help.

 

BkyOju4CYAAzvAS.jpg

 

However, don't always try to achieve 10 as it can be detrimental in some cases, such as cache thrashing in high-bandwidth shaders.

Useful link.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!