Skip to content

Commit

Permalink
Enable ukernels on remaining aarch64 targets (#19901)
Browse files Browse the repository at this point in the history
As newer aarch64 targets increasingly support SVE and SME, this clause
was preventing ukernels from being used in cases where they do speed
things up. The reason why this logic was out of place here is that what
it controls here is the enablement of ukernels, which are a detail of
lowering an already tiled workload. If we wanted to use SVE with a
variable vector length, or with a fixed vector length different from
NEON's 128bit, that decision needed to be made earlier; conversely, if
the workload at this point already has the right shaped to be matched to
a NEON ukernel, then SVE is not relevant to it anymore.

FYI @ziereis , this results in substantially faster code in your test
case from #19873.

Signed-off-by: Benoit Jacob <[email protected]>
  • Loading branch information
bjacob authored Feb 4, 2025
1 parent 82255c7 commit eb19497
Showing 1 changed file with 0 additions and 4 deletions.
4 changes: 0 additions & 4 deletions compiler/src/iree/compiler/Codegen/Utils/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,6 @@ static const char *getDefaultEnabledUkernels(Attribute attr) {
return "mmt4d";
}
if (isAArch64(targetAttr)) {
if (hasFeature(targetAttr, "+sve") || hasFeature(targetAttr, "+sve2") ||
hasFeature(targetAttr, "+sme")) {
return kNone;
}
return "mmt4d";
}
return kNone;
Expand Down

0 comments on commit eb19497

Please sign in to comment.