SMAUG
Simulating Machine Learning Applications on gem5-Aladdin
|
1 #ifndef _OPERATORS_SMV_SMV_CONVOLUTION_TILING_H_
2 #define _OPERATORS_SMV_SMV_CONVOLUTION_TILING_H_
4 #include "smaug/core/backend.h"
5 #include "smaug/core/tensor.h"
6 #include "smaug/operators/smv/smv_tiling_common.h"
7 #include "smaug/operators/smv/smv_tiling_base.h"
11 class SmvConvolutionOp;
61 bool copyData =
false);
Tensor represents a single multi-dimensional array of data.
static TilingConfig computeBasicTileShapes(SmvConvolutionOp *op)
Determine the best basic tiling shape for this convolution layer.
Tiling optimizer for SMV convolution kernel.
A multidimensional container of Tensors.
TensorShape describes the shape of a Tensor.
static TiledTensor generateRowwiseOutputTiledTensor(SmvConvolutionOp *op, const TiledTensor &inputTiledTensor, const TiledTensor &weightsTiledTensor, const TensorShape &maxOutputTileSize, Tensor *outputTensor, bool copyData=false)
A specialized output tiling function when the output is tiled rowwise.
A TilingConfig describes tiling strategies and optimal tile sizes for inputs, weights,...
The smaug namespace is the parent namespace of all C++ code in SMAUG.
static std::array< TilingDims, 3 > determineBestTilingDims(Tensor *inputs, Tensor *weights, Tensor *outputs, int maxTileSize)
Determine the best tiling dimensions for running convolution on SMV.
SMV backend implementation of convolution.