LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
lbann::openmp_backend Class Reference

DNN library backend for hand-rolled, OMP-based implementations. More...

#include <openmp.hpp>

Classes

class  TensorDescriptor
 
struct  unnecessary
 

Public Member Functions

template<typename DataT , typename ScalarT >
void softmax_forward (ScalarT const &alpha_in, TensorDescriptor const &inputDesc, El::Matrix< DataT, El::Device::CPU > const &local_input, ScalarT const &beta_in, TensorDescriptor const &outputDesc, El::Matrix< DataT, El::Device::CPU > &local_output, El::SyncInfo< El::Device::CPU > const &si, softmax_mode mode, softmax_alg alg)
 
template<typename DataT , typename ScalarT >
void softmax_backward (ScalarT const &alpha_in, TensorDescriptor const &outputDesc, El::Matrix< DataT, El::Device::CPU > const &local_output, TensorDescriptor const &outputGradDesc, El::Matrix< DataT, El::Device::CPU > const &local_gradient_wrt_output, ScalarT const &beta_in, TensorDescriptor const &inputGradDesc, El::Matrix< DataT, El::Device::CPU > &local_gradient_wrt_input, El::SyncInfo< El::Device::CPU > const &si, softmax_mode mode, softmax_alg alg)
 

Static Public Member Functions

template<typename T >
static auto data_type ()
 
template<typename DataT , typename ScalarT >
static void softmax_forward (ScalarT const &alpha_in, TensorDescriptor const &xDesc, El::Matrix< DataT, device > const &x, ScalarT const &beta_in, TensorDescriptor const &yDesc, El::Matrix< DataT, device > &y, El::SyncInfo< device > const &si, softmax_mode mode, softmax_alg alg=softmax_alg::ACCURATE)
 
template<typename DataT , typename ScalarT >
static void logsoftmax_forward (ScalarT const &alpha_in, TensorDescriptor const &xDesc, El::Matrix< DataT, device > const &x, ScalarT const &beta_in, TensorDescriptor const &yDesc, El::Matrix< DataT, device > &y, El::SyncInfo< device > const &si, softmax_mode mode)
 
template<typename DataT , typename ScalarT >
static void softmax_backward (ScalarT const &alpha_in, TensorDescriptor const &yDesc, El::Matrix< DataT, device > const &y, TensorDescriptor const &dyDesc, El::Matrix< DataT, device > const &dy, ScalarT const &beta_in, TensorDescriptor const &dxDesc, El::Matrix< DataT, device > &dx, El::SyncInfo< device > const &si, softmax_mode mode, softmax_alg alg=softmax_alg::ACCURATE)
 
template<typename DataT , typename ScalarT >
static void logsoftmax_backward (ScalarT const &alpha_in, TensorDescriptor const &yDesc, El::Matrix< DataT, device > const &y, TensorDescriptor const &dyDesc, El::Matrix< DataT, device > const &dy, ScalarT const &beta_in, TensorDescriptor const &dxDesc, El::Matrix< DataT, device > &dx, El::SyncInfo< device > const &si, softmax_mode mode, softmax_alg alg=softmax_alg::ACCURATE)
 

Static Public Attributes

static constexpr auto device = El::Device::CPU
 

Detailed Description

DNN library backend for hand-rolled, OMP-based implementations.

This backend only supports CPUs right now.

Definition at line 43 of file openmp.hpp.

Member Function Documentation

◆ data_type()

template<typename T >
static auto lbann::openmp_backend::data_type ( )
inlinestatic

Definition at line 55 of file openmp.hpp.

◆ logsoftmax_backward()

template<typename DataT , typename ScalarT >
static void lbann::openmp_backend::logsoftmax_backward ( ScalarT const &  alpha_in,
TensorDescriptor const &  yDesc,
El::Matrix< DataT, device > const &  y,
TensorDescriptor const &  dyDesc,
El::Matrix< DataT, device > const &  dy,
ScalarT const &  beta_in,
TensorDescriptor const &  dxDesc,
El::Matrix< DataT, device > &  dx,
El::SyncInfo< device > const &  si,
softmax_mode  mode,
softmax_alg  alg = softmax_alg::ACCURATE 
)
inlinestatic

Definition at line 178 of file openmp.hpp.

Here is the caller graph for this function:

◆ logsoftmax_forward()

template<typename DataT , typename ScalarT >
static void lbann::openmp_backend::logsoftmax_forward ( ScalarT const &  alpha_in,
TensorDescriptor const &  xDesc,
El::Matrix< DataT, device > const &  x,
ScalarT const &  beta_in,
TensorDescriptor const &  yDesc,
El::Matrix< DataT, device > &  y,
El::SyncInfo< device > const &  si,
softmax_mode  mode 
)
inlinestatic

Definition at line 152 of file openmp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ softmax_backward() [1/2]

template<typename DataT , typename ScalarT >
void lbann::openmp_backend::softmax_backward ( ScalarT const &  alpha_in,
TensorDescriptor const &  outputDesc,
El::Matrix< DataT, El::Device::CPU > const &  local_output,
TensorDescriptor const &  outputGradDesc,
El::Matrix< DataT, El::Device::CPU > const &  local_gradient_wrt_output,
ScalarT const &  beta_in,
TensorDescriptor const &  inputGradDesc,
El::Matrix< DataT, El::Device::CPU > &  local_gradient_wrt_input,
El::SyncInfo< El::Device::CPU > const &  si,
softmax_mode  mode,
softmax_alg  alg 
)

Definition at line 120 of file utils/dnn_lib/openmp/softmax.hpp.

Here is the call graph for this function:

◆ softmax_backward() [2/2]

template<typename DataT , typename ScalarT >
static void lbann::openmp_backend::softmax_backward ( ScalarT const &  alpha_in,
TensorDescriptor const &  yDesc,
El::Matrix< DataT, device > const &  y,
TensorDescriptor const &  dyDesc,
El::Matrix< DataT, device > const &  dy,
ScalarT const &  beta_in,
TensorDescriptor const &  dxDesc,
El::Matrix< DataT, device > &  dx,
El::SyncInfo< device > const &  si,
softmax_mode  mode,
softmax_alg  alg = softmax_alg::ACCURATE 
)
static
Here is the caller graph for this function:

◆ softmax_forward() [1/2]

template<typename DataT , typename ScalarT >
void lbann::openmp_backend::softmax_forward ( ScalarT const &  alpha_in,
TensorDescriptor const &  inputDesc,
El::Matrix< DataT, El::Device::CPU > const &  local_input,
ScalarT const &  beta_in,
TensorDescriptor const &  outputDesc,
El::Matrix< DataT, El::Device::CPU > &  local_output,
El::SyncInfo< El::Device::CPU > const &  si,
softmax_mode  mode,
softmax_alg  alg 
)

Definition at line 40 of file utils/dnn_lib/openmp/softmax.hpp.

Here is the call graph for this function:

◆ softmax_forward() [2/2]

template<typename DataT , typename ScalarT >
static void lbann::openmp_backend::softmax_forward ( ScalarT const &  alpha_in,
TensorDescriptor const &  xDesc,
El::Matrix< DataT, device > const &  x,
ScalarT const &  beta_in,
TensorDescriptor const &  yDesc,
El::Matrix< DataT, device > &  y,
El::SyncInfo< device > const &  si,
softmax_mode  mode,
softmax_alg  alg = softmax_alg::ACCURATE 
)
static
Here is the caller graph for this function:

Member Data Documentation

◆ device

constexpr auto lbann::openmp_backend::device = El::Device::CPU
static

Definition at line 45 of file openmp.hpp.


The documentation for this class was generated from the following files: