Skip to content

Commit

Permalink
Verify valid factor
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-smnk committed Jan 16, 2025
1 parent ae2dfa6 commit c5d9bad
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions lib/TPP/Dialect/Xsmm/XsmmVerify.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,23 +72,25 @@ static LogicalResult verifyGemmDispatchAndInvokeLikeOp(InvokeTy gemmOp) {

// VNNI flags must be consistent with the memref shapes.
auto vnniFactor = vnni::utils::getVnniBlockingFactor(operandA, gemmOp);

ArrayAttr flags = dispatchOp->getFlags();
for (auto flag : flags) {
int64_t gemmFlag = cast<IntegerAttr>(flag).getInt();
if (gemmFlag == static_cast<int64_t>(xsmm::GemmFlags::VNNI_A) &&
!vnni::utils::isInVnniLayout(expectedVnniRankIns, operandA,
vnniFactor)) {
(!vnniFactor || !vnni::utils::isInVnniLayout(expectedVnniRankIns,
operandA, vnniFactor))) {
return gemmOp.emitOpError(
"expect VNNI layout for operand A or invalid VNNI_A flags");
}
if (gemmFlag == static_cast<int64_t>(xsmm::GemmFlags::VNNI_B) &&
!vnni::utils::isInVnniLayout(expectedVnniRankIns, operandB,
vnniFactor)) {
(!vnniFactor || !vnni::utils::isInVnniLayout(expectedVnniRankIns,
operandB, vnniFactor))) {
return gemmOp.emitOpError(
"expect VNNI layout for operand B or invalid VNNI_B flags");
}
if (gemmFlag == static_cast<int64_t>(xsmm::GemmFlags::VNNI_C) &&
!vnni::utils::isInVnniLayout(expectedVnniRankOuts, outC, vnniFactor)) {
(!vnniFactor || !vnni::utils::isInVnniLayout(expectedVnniRankOuts, outC,
vnniFactor))) {
return gemmOp.emitOpError(
"expect VNNI layout for operand C or invalid VNNI_C flags");
}
Expand Down

0 comments on commit c5d9bad

Please sign in to comment.