diff options
author | Nicolas Vasilache <Nico.Vasilache@amd.com> | 2025-07-07 18:06:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-07 18:06:41 +0200 |
commit | 2b28d100226bcf6710851137c31080cc670196d6 (patch) | |
tree | 0de9ed5b7be5f25ae63fafda619475b7e620dfb4 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 499e656cacb04ca36c3cf39cc0b3d8d29c24c384 (diff) | |
download | llvm-2b28d100226bcf6710851137c31080cc670196d6.zip llvm-2b28d100226bcf6710851137c31080cc670196d6.tar.gz llvm-2b28d100226bcf6710851137c31080cc670196d6.tar.bz2 |
[mlir][SCF][GPU] Add DeviceMaskingAttrInterface (#146943)
This revision adds DeviceMaskingAttrInterface and extends
DeviceMappingArrayAttr to accept a union of DeviceMappingAttrInterface
and DeviceMaskingAttrInterface.
Support is added to GPUTransformOps to take advantage of this
information and lower to block/warpgroup/warp/thread specialization when
mapped to linear ids.
The revision also connects to scf::ForallOp and uses the new attribute
to implement warp specialization.
The implementation is in the form of a GPUMappingMaskAttr, which can be
additionally passed to the scf.forall.mapping attribute to specify a
mask on compute resources that should be active.
In the first implementation the masking is a bitfield that specifies for
each processing unit whether it is active or not.
In the future, we may want to implement this as a symbol to refer to
dynamically defined values.
Extending op semantics with an operand is deemed too intrusive at this
time.
---------
Co-authored-by: Oleksandr "Alex" Zinenko <git@ozinenko.com>
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions