27 #ifndef LBANN_BASE_HPP_INCLUDED 28 #define LBANN_BASE_HPP_INCLUDED 33 #include "lbann_config.hpp" 60 std::unique_ptr<lbann_comm, std::function<void(lbann_comm*)>>;
106 #ifdef LBANN_HAS_HALF 107 using cpu_fp16 = El::cpu_half_type;
110 #ifdef LBANN_HAS_GPU_FP16 111 using fp16 = El::gpu_half_type;
115 using AbsMat = El::AbstractMatrix<DataType>;
116 using CPUMat = El::Matrix<DataType, El::Device::CPU>;
118 using GPUMat = El::Matrix<DataType, El::Device::GPU>;
119 #endif // LBANN_HAS_GPU 127 template <El::Device D>
128 using DMat = El::Matrix<DataType, D>;
129 template <El::Device D>
131 using ElMat = El::ElementalMatrix<DataType>;
134 template <
typename TensorDataType>
135 using CPUMatDT = El::Matrix<TensorDataType, El::Device::CPU>;
137 template <
typename TensorDataType, El::Device D>
139 El::DistMatrix<TensorDataType, El::MC, El::MR, El::ELEMENT, D>;
140 template <
typename TensorDataType, El::Device D>
142 El::DistMatrix<TensorDataType, El::CIRC, El::CIRC, El::ELEMENT, D>;
143 template <
typename TensorDataType, El::Device D>
145 El::DistMatrix<TensorDataType, El::STAR, El::STAR, El::ELEMENT, D>;
146 template <
typename TensorDataType, El::Device D>
148 El::DistMatrix<TensorDataType, El::STAR, El::VC, El::ELEMENT, D>;
149 template <
typename TensorDataType, El::Device D>
155 template <
typename TensorDataType, El::Device D>
157 DistMatrix<TensorDataType, El::MC, El::STAR, El::ELEMENT, D>;
158 template <
typename TensorDataType, El::Device D>
160 DistMatrix<TensorDataType, El::MR, El::STAR, El::ELEMENT, D>;
161 template <
typename TensorDataType, El::Device D>
163 El::DistMatrix<TensorDataType, El::STAR, El::MR, El::ELEMENT, D>;
164 template <
typename TensorDataType>
167 template <El::Device D>
169 template <El::Device D>
171 template <El::Device D>
173 template <El::Device D>
175 template <El::Device D>
177 template <El::Device D>
179 template <El::Device D>
181 template <El::Device D>
185 El::Matrix<DataType, El::Device::CPU>;
254 bool endsWith(
const std::string mainStr,
const std::string& toMatch);
258 #define LBANN_PRINT_MATRIX_DIMS(x) print_matrix_dims(x, #x); 262 #define LBANN_PRINT_LOCAL_MATRIX_DIMS(x) print_local_matrix_dims(x, #x); 264 #define LBANN_MAKE_STR_(x) #x 265 #define LBANN_MAKE_STR(x) LBANN_MAKE_STR_(x) 274 #endif // LBANN_BASE_HPP_INCLUDED MCMRMatDT< TensorDataType, El::Device::CPU > DistMatDT
MCMRMatDT< DataType, D > MCMRMat
El::DistMatrix< TensorDataType, El::STAR, El::STAR, El::ELEMENT, D > StarMatDT
VCStarMatDT< DataType, D > VCStarMat
El::Matrix< DataType, D > DMat
El::AbstractDistMatrixReadDeviceProxy< DataType, D > AbsDistMatReadProxy
StarMRMatDT< DataType, D > StarMRMat
ColSumMat.
El::AbstractDistMatrix< DataType > AbsDistMat
El::DistMatrix< TensorDataType, El::STAR, El::VC, El::ELEMENT, D > StarVCMatDT
MCMRMat< El::Device::CPU > DistMat
Create an iterator that goes over a contiguous (unit-step) enum class.
El::DistMatrix< TensorDataType, El::MR, El::STAR, El::ELEMENT, D > MRStarMatDT
RowSumMat.
BackpropRequirements
Backpropagation requirements from a layer or operator.
El::DistMatrix< TensorDataType, El::STAR, El::MR, El::ELEMENT, D > StarMRMatDT
ColSumMat.
data_layout data_layout_from_string(std::string const &str)
matrix_format data_layout_to_matrix_format(data_layout layout)
execution_mode exec_mode_from_string(std::string const &str)
Convert a string to an execution_mode.
std::unique_ptr< lbann_comm > initialize_lbann(int argc, char **argv)
Initialize LBANN for use with external applcations.
std::unique_ptr< lbann_comm, std::function< void(lbann_comm *)> > world_comm_ptr
El::DistMatrix< TensorDataType, El::MC, El::STAR, El::ELEMENT, D > MCStarMatDT
ColSumStarVCMat.
El::BlockMatrix< DataType > BlockMat
CircMatDT< DataType, D > CircMat
El::DistMatrix< TensorDataType, El::VC, El::STAR, El::ELEMENT, D > VCStarMatDT
constexpr El::Device Device
matrix_format
Distributed matrix format.
std::string to_string(El::Device const &d)
El::ElementalMatrix< DataType > ElMat
El::Device device_from_string(std::string const &str)
std::basic_istream< CharT > & operator>>(std::basic_istream< CharT > &is, beta_distribution< RealType > &d)
El::Matrix< TensorDataType, El::Device::CPU > CPUMatDT
StarVCMatDT< DataType, D > StarVCMat
El::Matrix< DataType, El::Device::CPU > CPUMat
StarMatDT< DataType, D > StarMat
typename std::add_pointer< T >::type observer_ptr
Creating an observer_ptr to complement the unique_ptr and shared_ptr.
execution_mode
Neural network execution mode.
El::AbstractMatrix< DataType > AbsMat
bool endsWith(const std::string mainStr, const std::string &toMatch)
El::DistMatrix< TensorDataType, El::MC, El::MR, El::ELEMENT, D > MCMRMatDT
void print_matrix_dims(AbsDistMat *m, const char *name)
Print the dimensions and name of a Elemental matrix.
world_comm_ptr initialize(int &argc, char **&argv)
MRStarMatDT< DataType, D > MRStarMat
RowSumMat.
El::DistMatrix< TensorDataType, El::CIRC, El::CIRC, El::ELEMENT, D > CircMatDT
El::Matrix< DataType, El::Device::CPU > Mat
El::BaseDistMatrix BaseDistMat
data_layout
Data layout that is optimized for different modes of parallelism.
void lbann_mpi_err_handler(MPI_Comm *comm, int *err_code,...)
MCStarMatDT< DataType, D > MCStarMat
ColSumStarVCMat.
void finalize_lbann(lbann_comm *comm=nullptr)
Destroy LBANN communicator for external application.
void finalize(lbann_comm *comm=nullptr)
void print_local_matrix_dims(AbsMat *m, const char *name)
Print the dimensions and name of a Elemental matrix.