mxnet
Classes | Typedefs | Functions
mxnet::alm Namespace Reference

Classes

struct  ALMParams
 A singleton flag, set and read by MXSetOptimizeLayout and MXGetOptimizeLayout. More...
 

Typedefs

using Transpose = std::vector< size_t >
 Transpose, represented by permutation of axes. More...
 
using FChangeLayout = std::function< bool(nnvm::NodeAttrs *, mshadow::LayoutFlag target_layout, std::vector< Transpose > *in_axes, std::vector< Transpose > *out_axes)>
 May change operator's layout. Used in LayoutOptimization. More...
 

Functions

nnvm::Graph OptimizeLayout (nnvm::Graph &&g)
 
bool IsIdentity (const Transpose &t)
 
Transpose Reverse (const Transpose &axes)
 
Transpose Compose (const Transpose &lhs, const Transpose &rhs)
 
mshadow::LayoutFlag ApplyTranspose (mshadow::LayoutFlag layout, const Transpose &axes)
 
std::string ApplyTranspose (const std::string &layout, const Transpose &axes)
 
Transpose FromTShape (const mxnet::TShape &s)
 
Transpose FactorCommonTranspose (std::vector< Transpose > *axes)
 Factors out and returns a common transpose, or default-constructed Transpose if all axes (in/out parameter) are empty. More...
 

Typedef Documentation

◆ FChangeLayout

using mxnet::alm::FChangeLayout = typedef std::function<bool(nnvm::NodeAttrs*, mshadow::LayoutFlag target_layout, std::vector<Transpose>* in_axes, std::vector<Transpose>* out_axes)>

May change operator's layout. Used in LayoutOptimization.

Parameters
target_layoutThe target layout to change to, or kUNKNOWN. In the latter case the target layout is calculated based on in_axes, with a goal to cancel them out (at least some, ideally - all).
in_axes(in/out) On input - pending inputs' transposes. On output - inputs' transposes, required by the new layout.
out_axes(out) Outputs' transposes, required to convert to the original layouts.
Returns
true if attrs changed and params need to be reparsed.

◆ Transpose

using mxnet::alm::Transpose = typedef std::vector<size_t>

Transpose, represented by permutation of axes.

Function Documentation

◆ ApplyTranspose() [1/2]

std::string mxnet::alm::ApplyTranspose ( const std::string &  layout,
const Transpose axes 
)

◆ ApplyTranspose() [2/2]

mshadow::LayoutFlag mxnet::alm::ApplyTranspose ( mshadow::LayoutFlag  layout,
const Transpose axes 
)

◆ Compose()

Transpose mxnet::alm::Compose ( const Transpose lhs,
const Transpose rhs 
)

\bried Compose 2 transposes. Not commutative: a * b means b is applied first, then a.

◆ FactorCommonTranspose()

Transpose mxnet::alm::FactorCommonTranspose ( std::vector< Transpose > *  axes)

Factors out and returns a common transpose, or default-constructed Transpose if all axes (in/out parameter) are empty.

◆ FromTShape()

Transpose mxnet::alm::FromTShape ( const mxnet::TShape s)

◆ IsIdentity()

bool mxnet::alm::IsIdentity ( const Transpose t)

◆ OptimizeLayout()

nnvm::Graph mxnet::alm::OptimizeLayout ( nnvm::Graph &&  g)

\bried Top-level function to run layout optimization.

◆ Reverse()

Transpose mxnet::alm::Reverse ( const Transpose axes)