SMAUG
Simulating Machine Learning Applications on gem5-Aladdin
|
Tiling optimizer for SMV batch norm kernel. More...
#include <smv_batch_norm_tiling.h>
Tiling optimizer for SMV batch norm kernel.
Definition at line 19 of file smv_batch_norm_tiling.h.
Static Public Member Functions | |
static std::array< TiledTensor, 3 > | doTiling (SmvBatchNormOp *op) |
Runs the tiling optimizer on the given batch norm op. More... | |
static TilingConfig | computeBasicTileShapes (Tensor *inputs, Tensor *weights, Tensor *outputs) |
Determine the best basic tiling shape for this batch norm layer. More... | |
Static Protected Member Functions | |
static std::array< TilingDims, 2 > | determineBestTilingDims (Tensor *inputs, Tensor *weights, int maxTileSize) |
Determine the best tiling dimensions for running batch norm on SMV. More... | |
static void | enumPostFCTilingConfigs (TensorShape inputsShape, TensorShape weightsShape, int maxTileSize, std::array< TilingDims, 2 > strategies, std::list< TilingConfig > &fullConfigs) |
static void | enumPostConvTilingConfigs (TensorShape inputsShape, TensorShape weightsShape, int maxTileSize, std::array< TilingDims, 2 > strategies, std::list< TilingConfig > &fullConfigs) |
|
static |
Determine the best basic tiling shape for this batch norm layer.
The algorithm first determines the dimensions along which the inputs, weights, and outputs will be tiled. Then based on those dimensions, we enumerate all possible basic tile shapes for inputs, weights, and outputs. A basic shape is the shape that all but potentially the last tile along a set of dimensions will use. This triplet of tile shapes defines a TilingConfig. The TilingConfig that maximizes the total combined size of input, weights, and output tiles is chosen as the best.
This algorithm assumes that the maximum tile size for weights, inputs, and outputs are all the same and that they will reside in separate scratchpads (no sharing).
inputs | Inputs tensor of the batch norm operator. |
weights | A tensor that concatenates the four weights tensors of the batch norm operator. |
outputs | Outputs tensor of the batch norm operator. |
Definition at line 207 of file smv_batch_norm_tiling.cpp.
|
staticprotected |
Determine the best tiling dimensions for running batch norm on SMV.
Returns: A 2-element array of TilingDims enums (inputs, weights).
Definition at line 13 of file smv_batch_norm_tiling.cpp.
|
static |
Runs the tiling optimizer on the given batch norm op.
Definition at line 260 of file smv_batch_norm_tiling.cpp.