Does TMA need to commit?

In cutlass/test/unit/pipeline/pipeline_tma_async_warp_specialized.cu, I see:
pipeline.producer_commit

And in cutlass/include/cutlass/gemm/collective/sm90_mma_tma_gmma_ss_warpspecialized.hpp, I see:
pipeline.producer_get_barrier

They locates at almost same place, so I guess they have same function. Why? Any difference? They are the same?(from source code I can not understand)

Thanks~

I noticed one reply said: “one is doing the commit, the other is simply returning the pointer to the barrier.”

I am wondering, if we use multi-stage, we need commit, but TMA hardware itself contains the commit???

I checked cuda doc and I see:


TMA… has commit or not? In what case we do not need to commit?(I really can not imagine and this infect my proceeding coding…)