RadeonSI Switches To Make Greater Wave64 Use On Navi
While RDNA/Navi brought Wave32 support, the open-source RadeonSI Gallium3D driver for Linux has decided to switch to make greater use now of Wave64 for more shaders.
Well known AMD open-source developer Marek Olšák wrote:
The change to use Wave64 for more shader stages was merged this week for Mesa 20.2. The commit does add the new "nggctess" perf flag for always using NGG culling for tessellation, complementing the existing nggc (for always using NGG culling) and nonggc for disabling NGG culling.
Well known AMD open-source developer Marek Olšák wrote:
ac,radeonsi: use Wave64 for HS/GS/VS, gpu_info fix
As said in the commit, Wave64 is probably better, because:
- greater chance of L0 cache hits, because more threads are assigned to the same CU
- scalar instructions are only executed once for 64 threads instead of twice
- VGPR allocation granularity is half of Wave32, so 1 Wave64 can sometimes use fewer VGPRs than 2 Wave32
- TessMark X64 with NGG culling is faster with Wave64
The change to use Wave64 for more shader stages was merged this week for Mesa 20.2. The commit does add the new "nggctess" perf flag for always using NGG culling for tessellation, complementing the existing nggc (for always using NGG culling) and nonggc for disabling NGG culling.
8 Comments