[llvm] [AMDGPU] Document & Finalize GFX12 Memory Model (PR #98599)
Tony Tye via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 19 09:34:17 PDT 2024
t-tye wrote:
> > > Can you please review the changes I made for L1 as a buffer?
> >
> >
> > I'm confused that [c2625c2](https://github.com/llvm/llvm-project/commit/c2625c2c89529dbaffd7503c12d48ab071f4c561) changes the text about what `global_inv` are required, but does not update anything in the code sequences table.
>
> Good catch, and you're right. I think we could replace those SCOPE_DEV with SCOPE_SE, but I'm not really convinced it's the right decision because:
>
> * global_inv is meant as a release operation, and it makes sense that if we do a agent scope release, we should have a `global_inv scope:SCOPE_DEV`.
>
> * I prefer to not rely too much on the device configuration when it's not strictly needed. e.g. it's technically possible for L2 to have SCOPE_SE depending on mtype, device layout, etc. which means that for a agent release we would have to invalidate it too, and a SCOPE_SE inv won't do it. (Though this is a bit of a "whataboutism")
>
> * AFAIK L1 forwards everything to L2, so SCOPE_SE vs DEV isn't any less efficient, it'll reach L2 in any case.
>
>
> I will bring this up with @t-tye on our next meeting. My intuition is that we should leave SCOPE_DEV, and then add a new paragraph to explain how we approach global_inv/wb emission.
Yes let's discuss this as there are several things here that seem questionable:-)
https://github.com/llvm/llvm-project/pull/98599
More information about the llvm-commits
mailing list