RadeonSI's New SDMA Texture Copy Code Lands In Mesa
There is more exciting open-source AMD work to share today, a week before the feature freeze for the next version of Mesa.
The new SDMA texture copy implementation has landed in Mesa Git by Marek Olšák. He previously explained of the code rewrite, "This patch series completely rewrites texture copying with SDMA for CIK [Sea Islands] & VI [Volcanic Islands]. It only uses the "partial" copy packets, which makes it a lot simpler (one packet per layered/3D copy). Most of the complexity is in handling [hardware] limitations, but luckily the SDMA path can be used in the majority of cases. On top of that, the DMA IB support is improved thanks to extensive testing and benchmarking...On Tonga, it beats the 3D engine in texture upload performance by 0-80%. On APUs, the performance is mixed or slightly worse. The reason may be that the 3D engine uses less bandwidth thanks to DCC. The fact that SDMA can't do DCC compression can be detrimental to texturing performance on VI. The impact hasn't been measured yet."
SDMA in this context is short for System DMA (Direct Memory Access) and is a new asynchronous DMA engine originally added to Radeon GPUs with GCN 1.1 Sea Islands. The new code landed today over the span of several commits and is in better shape as outlined above and will hopefully yield in better performance. This is now another improvement ready for the Mesa 11.3 release due out in June.
The new SDMA texture copy implementation has landed in Mesa Git by Marek Olšák. He previously explained of the code rewrite, "This patch series completely rewrites texture copying with SDMA for CIK [Sea Islands] & VI [Volcanic Islands]. It only uses the "partial" copy packets, which makes it a lot simpler (one packet per layered/3D copy). Most of the complexity is in handling [hardware] limitations, but luckily the SDMA path can be used in the majority of cases. On top of that, the DMA IB support is improved thanks to extensive testing and benchmarking...On Tonga, it beats the 3D engine in texture upload performance by 0-80%. On APUs, the performance is mixed or slightly worse. The reason may be that the 3D engine uses less bandwidth thanks to DCC. The fact that SDMA can't do DCC compression can be detrimental to texturing performance on VI. The impact hasn't been measured yet."
SDMA in this context is short for System DMA (Direct Memory Access) and is a new asynchronous DMA engine originally added to Radeon GPUs with GCN 1.1 Sea Islands. The new code landed today over the span of several commits and is in better shape as outlined above and will hopefully yield in better performance. This is now another improvement ready for the Mesa 11.3 release due out in June.
7 Comments