You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Separate TTGPU to LLVM and TritonGEN to LLVM Lowering (#4276)
Changes the Intel lowering pipeline during `make_llir` to first convert
TritonIntelGPU to LLVM Dialect, then convert TritonGEN to LLVM Dialect.
This is analogous to the NVIDIA backend, allows us to run the GEN
verifier on all GEN ops, and allows us to write lit tests against
TTGPUIR looking for specific gen ops - e.g. 2d block loads with specific
tile sizes.
To lower GEN to LLVM Dialect we need to add the GEN To SPIRV and SPIRV
to LLVM patterns to the lowering step. I chose to do that in the
existing TritonGENToLLVM pass, but we could introduce a new pass too
(`TritonGENToLLVMViaSPIRV`?).
Finally, I had to disable the tensor of pointer -> 2d block io lit test.
The test is failing Gen validation because the pitch passed to the
TritonGEN op is 0. This likely wouldn't work in practice, but it is now
being caught during lit testing because we are running the verifier. I
have opened a separate issue to fix this:
#4275
I also discovered several places where the DPAS layout was using the
incorrect `opsPerChannel` parameter for the data type - I had initially
opened #4270
to track this, but fixed the issue in this PR. However, we should
consider layout validation to ensure DPAS type-specific parameters match
the data type.
close#4269
0 commit comments