MLIR 24.0.0git
mlir::linalg::BlockPackMatmulOptions Struct Reference

#include "mlir/Dialect/Linalg/Transforms/Transforms.h"

Public Attributes

SmallVector< int64_t, 3 > blockFactors
 Minor block factors (mb, nb, kb) for packing relayout where mb, mn are the parallel dimensions and kb is the reduction dimension.
SmallVector< bool, 3 > scalableBlockFactors
 Scalable flags for block factors.
bool allowPadding = true
 If true, allows packing of dimensions that only partially fit into the block factors.
SmallVector< int64_t, 3 > mnkPaddedSizesNextMultipleOf
 Next multiples of the packing sizes.
SmallVector< int64_t, 3 > mnkOrder = {0, 1, 2}
 Permutation of matmul (M, N, K) dimensions order.
bool lhsTransposeOuterBlocks = false
 Transpose LHS outer block layout [MB][KB] -> [KB][MB].
bool lhsTransposeInnerBlocks = false
 Transpose LHS inner block layout [mb][kb] -> [kb][mb].
bool rhsTransposeOuterBlocks = true
 Transpose RHS outer block layout [KB][NB] -> [NB][KB].
bool rhsTransposeInnerBlocks = true
 Transpose RHS inner block layout [kb][nb] -> [nb][kb].

Detailed Description

Definition at line 1416 of file Transforms.h.

Member Data Documentation

◆ allowPadding

bool mlir::linalg::BlockPackMatmulOptions::allowPadding = true

If true, allows packing of dimensions that only partially fit into the block factors.

Definition at line 1428 of file Transforms.h.

◆ blockFactors

SmallVector<int64_t, 3> mlir::linalg::BlockPackMatmulOptions::blockFactors

Minor block factors (mb, nb, kb) for packing relayout where mb, mn are the parallel dimensions and kb is the reduction dimension.

Definition at line 1419 of file Transforms.h.

◆ lhsTransposeInnerBlocks

bool mlir::linalg::BlockPackMatmulOptions::lhsTransposeInnerBlocks = false

Transpose LHS inner block layout [mb][kb] -> [kb][mb].

Definition at line 1440 of file Transforms.h.

◆ lhsTransposeOuterBlocks

bool mlir::linalg::BlockPackMatmulOptions::lhsTransposeOuterBlocks = false

Transpose LHS outer block layout [MB][KB] -> [KB][MB].

Definition at line 1437 of file Transforms.h.

◆ mnkOrder

SmallVector<int64_t, 3> mlir::linalg::BlockPackMatmulOptions::mnkOrder = {0, 1, 2}

Permutation of matmul (M, N, K) dimensions order.

Definition at line 1434 of file Transforms.h.

◆ mnkPaddedSizesNextMultipleOf

SmallVector<int64_t, 3> mlir::linalg::BlockPackMatmulOptions::mnkPaddedSizesNextMultipleOf

Next multiples of the packing sizes.

Definition at line 1431 of file Transforms.h.

◆ rhsTransposeInnerBlocks

bool mlir::linalg::BlockPackMatmulOptions::rhsTransposeInnerBlocks = true

Transpose RHS inner block layout [kb][nb] -> [nb][kb].

Definition at line 1446 of file Transforms.h.

◆ rhsTransposeOuterBlocks

bool mlir::linalg::BlockPackMatmulOptions::rhsTransposeOuterBlocks = true

Transpose RHS outer block layout [KB][NB] -> [NB][KB].

Definition at line 1443 of file Transforms.h.

◆ scalableBlockFactors

SmallVector<bool, 3> mlir::linalg::BlockPackMatmulOptions::scalableBlockFactors

Scalable flags for block factors.

When true, the corresponding block factor is considered scalable. Must be empty (all static) or have the same size as blockFactors.

Definition at line 1424 of file Transforms.h.


The documentation for this struct was generated from the following file: