Lines Matching +full:non +full:- +full:batch
1 //===- BlockPackMatmul.cpp - Linalg matmul block packing ------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
40 return (*size - *offset);
54 unsigned batchDimsOffset = contractDims->batch.size();
56 // Skip the batch dimension if present.
75 // If the tile factor or the range are non-constant, the tile size is
100 unsigned outerBlockPos = operandMap.getNumResults() - 4;
101 unsigned innerBlockPos = operandMap.getNumResults() - 2;
108 operandMap.getDimPosition(outerBlockPos) != blocksStartDimPos.end()[-2];
121 // Leave the outer dimensions, like batch, unchanged by offsetting all
148 if (options->blockFactors.size() != 3)
152 getAsOpFoldResult(rewriter.getI64ArrayAttr(options->blockFactors));
155 if (!options->allowPadding &&
156 !validateFullTilesOnDims(linalgOp, mnkTiles, options->mnkOrder)) {
167 // - major 2D blocks - outer dimensions, consist of minor blocks
168 // - minor 2D blocks - inner dimensions, consist of scalar elements
170 rewriter, linalgOp, mnkTiles, options->mnkPaddedSizesNextMultipleOf,
171 options->mnkOrder);
175 assert(packedMatmul->packOps.size() == 3 &&
177 assert(packedMatmul->unPackOps.size() == 1 &&
181 inferContractionDims(packedMatmul->packedLinalgOp);
186 dyn_cast<linalg::GenericOp>(packedMatmul->packedLinalgOp.getOperation());
191 rewriter, packedMatmul->packedLinalgOp, packedMatmul->packOps[0], maps[0],
192 contractDims->m, options->lhsTransposeOuterBlocks,
193 options->lhsTransposeInnerBlocks);
198 packedMatmul->packOps[0] = packedLhs->transposedPackOp;
199 packedMatmul->packedLinalgOp = packedLhs->transposedLinalgOp;
203 rewriter, packedMatmul->packedLinalgOp, packedMatmul->packOps[1], maps[1],
204 contractDims->k, options->rhsTransposeOuterBlocks,
205 options->rhsTransposeInnerBlocks);
210 packedMatmul->packOps[1] = packedRhs->transposedPackOp;
211 packedMatmul->packedLinalgOp = packedRhs->transposedLinalgOp;
257 bindDims(linalgOp->getContext(), i, j, k);
288 [&](linalg::LinalgOp op) -> BlockPackMatmulOptions {