LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
builder_macros.hpp File Reference
#include "lbann/operators/operator.hpp"
#include "lbann/proto/datatype_helpers.hpp"
#include "lbann/proto/operators.pb.h"
#include <memory>
Include dependency graph for builder_macros.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 lbann_data
 
 lbann
 
 lbann::details
 

Macros

#define LBANN_DECLARE_OPERATOR_BUILDER(OP_NAME)
 A utility macro for adding a builder declaration for a single-type operator. More...
 
#define LBANN_DEFINE_OPERATOR_BUILDER(OP_LOWER, OP_NAME)
 A utility macro for easily adding a default builder with dynamic type-checking assertions. More...
 
#define LBANN_SINGLE_TYPE_OPERATOR_BUILDER_ETI(OPERATOR_NAME, T, D)
 A utility macro for easily adding ETI for operator builders. More...
 

Functions

template<typename InputT , typename OutputT , El::Device D>
void lbann::details::AssertConsistentTypeParameters (lbann_data::Operator const &op)
 

Macro Definition Documentation

◆ LBANN_DECLARE_OPERATOR_BUILDER

#define LBANN_DECLARE_OPERATOR_BUILDER (   OP_NAME)
Value:
template <typename DataT, El::Device D> \
std::unique_ptr<Operator<DataT, DataT, D>> build_##OP_NAME##_operator( \
lbann_data::Operator const& op)

A utility macro for adding a builder declaration for a single-type operator.

Note
Must be called inside lbann namespace.

Definition at line 60 of file builder_macros.hpp.

◆ LBANN_DEFINE_OPERATOR_BUILDER

#define LBANN_DEFINE_OPERATOR_BUILDER (   OP_LOWER,
  OP_NAME 
)
Value:
template <typename DataT, El::Device D> \
std::unique_ptr<lbann::Operator<DataT, DataT, D>> \
lbann::build_##OP_LOWER##_operator(lbann_data::Operator const& op) \
{ \
details::AssertConsistentTypeParameters<DataT, DataT, D>(op); \
return std::make_unique<OP_NAME##Operator<DataT, D>>(); \
}

A utility macro for easily adding a default builder with dynamic type-checking assertions.

Type-checking is only done with Debug builds.

Note
Must NOT be called inside lbann namespace.

Definition at line 72 of file builder_macros.hpp.

◆ LBANN_SINGLE_TYPE_OPERATOR_BUILDER_ETI

#define LBANN_SINGLE_TYPE_OPERATOR_BUILDER_ETI (   OPERATOR_NAME,
  T,
 
)
Value:
template std::unique_ptr<lbann::Operator<T, T, D>> \
lbann::build_##OPERATOR_NAME##_operator<T, D>(lbann_data::Operator const&)

A utility macro for easily adding ETI for operator builders.

Note
Must NOT be called inside lbann namespace.

Definition at line 84 of file builder_macros.hpp.