SMAUG
Simulating Machine Learning Applications on gem5-Aladdin
|
1 #ifndef _OPERATORS_SMV_SMV_BATCH_NORM_TILING_H_
2 #define _OPERATORS_SMV_SMV_BATCH_NORM_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"
63 static void enumPostFCTilingConfigs(
TensorShape inputsShape,
66 std::array<TilingDims, 2> strategies,
67 std::list<TilingConfig>& fullConfigs);
68 static void enumPostConvTilingConfigs(
TensorShape inputsShape,
71 std::array<TilingDims, 2> strategies,
72 std::list<TilingConfig>& fullConfigs);
Tensor represents a single multi-dimensional array of data.
SMV backend implementation of batch normalization.
TensorShape describes the shape of a Tensor.
A TilingConfig describes tiling strategies and optimal tile sizes for inputs, weights,...
static std::array< TiledTensor, 3 > doTiling(SmvBatchNormOp *op)
Runs the tiling optimizer on the given batch norm op.
The smaug namespace is the parent namespace of all C++ code in SMAUG.
static TilingConfig computeBasicTileShapes(Tensor *inputs, Tensor *weights, Tensor *outputs)
Determine the best basic tiling shape for this batch norm layer.
static std::array< TilingDims, 2 > determineBestTilingDims(Tensor *inputs, Tensor *weights, int maxTileSize)
Determine the best tiling dimensions for running batch norm on SMV.
Tiling optimizer for SMV batch norm kernel.