Skip to content
Snippets Groups Projects
Commit 39dbad54 authored by Olivier BICHLER's avatar Olivier BICHLER
Browse files

Added matMulTiling() documentation

parent c7a6e54c
No related branches found
No related tags found
No related merge requests found
...@@ -134,6 +134,21 @@ void explicitTranspose(std::shared_ptr<GraphView> graphView); ...@@ -134,6 +134,21 @@ void explicitTranspose(std::shared_ptr<GraphView> graphView);
*/ */
void expandMetaOps(std::shared_ptr<GraphView> graph, bool recursive = false); void expandMetaOps(std::shared_ptr<GraphView> graph, bool recursive = false);
/**
* @brief Tile any :cpp:function:`Aidge::MatMul` operator to several fixed size matrix multiplications.
* For instance, for a MatMul of size 80x80 and a tiling of 16x16, this will tile
* the MatMul operator to 25 (5 by 5) MatMul operators of size 16x16, with Slice
* operators inserted at the inputs and Concat operators inserted at the outputs.
*
* This is especially useful when matrix multiplication must be mapped to fixed
* maximum size hardware TPU (Tensor Processing Unit) or MMA (Matrix Multiplication
* Accelerator). This recipe can be combined with the :cpp:function:`Aidge::convToMatMul` recipe in
* order to convert convolutions to matrix multiplication beforehand, and
* :cpp:function:`Aidge::constantFolding` recipe to fold sliced constant tensors.
*
* @param matMul MatMul operator to be tiled.
* @param maxDims Maximum output dimensions of the tiled MatMul operators.
*/
void matMulTiling(NodePtr matMul, const std::vector<DimSize_t>& maxDims); void matMulTiling(NodePtr matMul, const std::vector<DimSize_t>& maxDims);
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment