AMD has released further LLVM patches for its upcoming Radeon RX 7000 GPUs which are expected to launch later this year starting with the 7700 XT, and the 7900 XT. The new update adds a new set of instruction called VOPD. According to the release, VOPD supports dual issue wave32 instructions. This falls in line with what was recently discovered in the Radeon Linux drivers.
def FeatureVOPD : SubtargetFeature<“vopd”,LLVM
“Has VOPD dual issue wave32 instructions”
According to the Linux code, RDNA 3 will once again overhaul the Compute Unit, stuffing as many 128 shaders across four SIMD32 units. The Work Group Processor, in turn, packs a total of 256 stream processors across eight SIMDs. As we know, AMD switched to a shorter 32 thread dispatch with RDNA, down from 64 on GCN. Known as wave32, it schedules 32 work items per SIMD for a total of 32 x2 per CU and 32 x4 per WGP.
The whole point of this shakeup was the improve utilization and maximize the number of data sets being scheduled. With GCN, each Compute Unit would work on four 64-item waves, not one 64-item wave. Like Bulldozer, the aim was to maximize parallelization. At the same time, GCN wasn’t an out-of-order architecture. The instructions within a wavefront were still executed as per their order. The only advantage was that the CU or SIMDs could switch to any of the four available waves.
The reason why this wasn’t very effective is that most games use shorter work queues due to which only one or two out of the four wavefronts were saturated per execution cycle. As a result, AMD’s GCN scheduler had to wait for four cycles for the next wave despite having room for additional wavefronts. RDNA fixes this by reducing the wave size, and increasing the wave count. RDNA 3 doubles down on this by literally doubling the number of concurrent 32-item waves per CU and WGP.
The latest LLVM patch includes support for dual issue “VOPD” wave 32 instructions without providing any concrete details regarding it. This could, however, refer to issuing two concurrent waves per scheduler or per SIMD (or CU?). Either way, RDNA 3 is going to change things quite a bit on the red side.