[Mlir-commits] [mlir] [mlir][scf] Add getPartialResultTilePosition to PartialReductionOpInterface (PR #120465)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Dec 20 09:20:39 PST 2024
================
@@ -355,33 +381,19 @@ struct LinalgOpPartialReductionInterface
return op->emitOpError(
"Failed to get an identity value for the reduction operation.");
- ArrayRef<int64_t> oldShape =
- linalgOp.getShape(linalgOp.getDpsInitOperand(initIdx));
-
- // Calculate the new shape, we insert the new dimensions based on the
- // index of the reduction dimensions.
- SmallVector<int64_t> newOutputShape;
- SmallVector<Value> dynamicDims;
- int64_t currReductionDims = 0;
- DenseSet<int> reductionDimsSet(reductionDims.begin(),
- reductionDims.end());
- for (int64_t idx :
- llvm::seq<int64_t>(0, oldShape.size() + reductionDims.size())) {
- if (reductionDimsSet.contains(idx)) {
- dispatchIndexOpFoldResults(sizes[idx], dynamicDims, newOutputShape);
- currReductionDims++;
- continue;
- }
- int64_t oldIdx = idx - currReductionDims;
- int64_t dim = oldShape[oldIdx];
- newOutputShape.push_back(dim);
- if (ShapedType::isDynamic(dim))
- dynamicDims.push_back(b.create<tensor::DimOp>(
- loc, linalgOp.getDpsInitOperand(initIdx)->get(), oldIdx));
+ // Append the new partial result dimensions.
+ AffineMap partialMap =
----------------
MaheshRavishankar wrote:
Something seems missing here. This needs to account for whether it is an outer paralleL/inner reduction split or a inner parallel/outer reduction split?
https://github.com/llvm/llvm-project/pull/120465
More information about the Mlir-commits
mailing list