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 1421 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 1433 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 1424 of file Transforms.h.

◆ lhsTransposeInnerBlocks

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

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

Definition at line 1445 of file Transforms.h.

◆ lhsTransposeOuterBlocks

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

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

Definition at line 1442 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 1439 of file Transforms.h.

◆ mnkPaddedSizesNextMultipleOf

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

Next multiples of the packing sizes.

Definition at line 1436 of file Transforms.h.

◆ rhsTransposeInnerBlocks

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

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

Definition at line 1451 of file Transforms.h.

◆ rhsTransposeOuterBlocks

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

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

Definition at line 1448 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 1429 of file Transforms.h.


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