RyanRio wrote: > ... I mean that, as a user, you _don't_ ever say "TENSOR" > > The user never says "these are the kinds of instructions that go in this > stage" or has to pick from a menu > > The user just puts different kinds of instructions in > differently-marked/differently-numbered stages and we figure it out. > > Or at least that's an API I'd argue can be made to work and keeps the spirit > of asyncmark/asyncwait
I.e. ``` stream_x = create_async_stream() stream_y = create_async_stream() llvm.amdgcn.global.store.async.to.lds.b32(..., stream_x) asyncmark(stream_x) llvm.amdgcn.tensor.load.to.lds(..., stream_y) async_mark(stream_y) wait_asyncmark(stream_y) ... ``` I feel this is unnecessarily verbose or at minimum not an API the compiler should have to provide. All sane use-cases degrade to my proposed API. I.e. if you were to try to create two separate streams that both contained instructions from two of my stages, its nonsensical because to determine that either stream has completed you have to completely drain the counter. https://github.com/llvm/llvm-project/pull/220442 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
