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
3 merge requests!279v0.4.0,!253v0.4.0,!244Add MatMulTiling recipe
Pipeline #58663 passed
......@@ -134,6 +134,21 @@ void explicitTranspose(std::shared_ptr<GraphView> graphView);
*/
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);
/**
......
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