Loading...
Searching...
No Matches
opennn::CudnnRnnState Struct Referenceabstract

#include <opennn/network/operators/cudnn_rnn.h>

Inheritance diagram for opennn::CudnnRnnState:
opennn::LSTMOperator opennn::RecurrentOperator

Classes

struct  BackendState
 
struct  CudnnRnnDims
 

Protected Member Functions

unique_lock< mutex > lock_backend_state () const
 
void cudnn_rnn_forward_ (const CudnnRnnShapeSlot &, bool is_training, bool has_cell_state, const void *x, void *y, Buffer &forward_state, const function< CudnnRnnShapeSlot &()> &reconfigure) const
 
void cudnn_rnn_backward_ (const CudnnRnnShapeSlot &, bool has_cell_state, const void *x, const void *y, const void *dy, void *dx, const Buffer &forward_state, Buffer &backward_scratch) const
 
CudnnRnnShapeSlot & cudnn_setup_ (const CudnnRnnConfig &, Index input_features, Index output_features, Index time_steps, Index batch_size, bool for_training) const
 
CudnnRnnShapeSlot & cudnn_setup_attempt_ (const CudnnRnnConfig &, Index input_features, Index output_features, Index time_steps, Index batch_size, bool for_training) const
 
void cudnn_copy_weight_regions_ (int num_linear_layers, Index input_features, Index output_features, const TensorView *const *matrices, const TensorView *const *vectors, Buffer &packed_weights, bool to_cudnn) const
 
void cudnn_pack_weights_ (int num_linear_layers, Index input_features, Index output_features, const TensorView *const *weights, const TensorView *const *biases, Buffer &forward_state, uint64_t parameters_version) const
 
void cudnn_unpack_gradients_ (int num_linear_layers, Index input_features, Index output_features, const TensorView *const *weight_gradients, const TensorView *const *bias_gradients, Buffer &backward_scratch) const
 
void prepare_cudnn_forward_state_ (Buffer &, bool is_training, const CudnnRnnShapeSlot &) const
 
string cudnn_rnn_configuration_ (const CudnnRnnShapeSlot &, const char *mode) const
 
virtual CudnnRnnShapeSlot & ensure_cudnn_setup_ (Index batch_size, bool for_training) const =0
 
virtual void pack_weights_to_cudnn_ (Buffer &, uint64_t parameters_version) const =0
 
virtual void unpack_gradients_from_cudnn_ (Buffer &) const =0
 
void drive_cudnn_forward_ (const CudnnRnnDims &, const TensorView &input, TensorView &sequence_output, TensorView &output, TensorView &cudnn_input_sequence, TensorView &cudnn_output_sequence, Buffer &forward_state, bool is_training, uint64_t parameters_version) const
 
void drive_cudnn_backward_ (const CudnnRnnDims &, const TensorView &input, const TensorView &sequence_output, const TensorView &output_delta, const TensorView &cudnn_input_sequence, const TensorView &cudnn_output_sequence, TensorView &input_delta, TensorView &sequence_delta_scratch, TensorView &input_delta_scratch, const Buffer &forward_state, Buffer &backward_scratch) const
 

Protected Attributes

BackendState backend_state
 

Member Function Documentation

◆ cudnn_copy_weight_regions_()

void opennn::CudnnRnnState::cudnn_copy_weight_regions_ ( int num_linear_layers,
Index input_features,
Index output_features,
const TensorView *const * matrices,
const TensorView *const * vectors,
Buffer & packed_weights,
bool to_cudnn ) const
protected

◆ cudnn_pack_weights_()

void opennn::CudnnRnnState::cudnn_pack_weights_ ( int num_linear_layers,
Index input_features,
Index output_features,
const TensorView *const * weights,
const TensorView *const * biases,
Buffer & forward_state,
uint64_t parameters_version ) const
protected

◆ cudnn_rnn_backward_()

void opennn::CudnnRnnState::cudnn_rnn_backward_ ( const CudnnRnnShapeSlot & ,
bool has_cell_state,
const void * x,
const void * y,
const void * dy,
void * dx,
const Buffer & forward_state,
Buffer & backward_scratch ) const
protected

◆ cudnn_rnn_configuration_()

string opennn::CudnnRnnState::cudnn_rnn_configuration_ ( const CudnnRnnShapeSlot & ,
const char * mode ) const
protected

◆ cudnn_rnn_forward_()

void opennn::CudnnRnnState::cudnn_rnn_forward_ ( const CudnnRnnShapeSlot & ,
bool is_training,
bool has_cell_state,
const void * x,
void * y,
Buffer & forward_state,
const function< CudnnRnnShapeSlot &()> & reconfigure ) const
protected

◆ cudnn_setup_()

CudnnRnnShapeSlot & opennn::CudnnRnnState::cudnn_setup_ ( const CudnnRnnConfig & ,
Index input_features,
Index output_features,
Index time_steps,
Index batch_size,
bool for_training ) const
protected

◆ cudnn_setup_attempt_()

CudnnRnnShapeSlot & opennn::CudnnRnnState::cudnn_setup_attempt_ ( const CudnnRnnConfig & ,
Index input_features,
Index output_features,
Index time_steps,
Index batch_size,
bool for_training ) const
protected

◆ cudnn_unpack_gradients_()

void opennn::CudnnRnnState::cudnn_unpack_gradients_ ( int num_linear_layers,
Index input_features,
Index output_features,
const TensorView *const * weight_gradients,
const TensorView *const * bias_gradients,
Buffer & backward_scratch ) const
protected

◆ drive_cudnn_backward_()

void opennn::CudnnRnnState::drive_cudnn_backward_ ( const CudnnRnnDims & ,
const TensorView & input,
const TensorView & sequence_output,
const TensorView & output_delta,
const TensorView & cudnn_input_sequence,
const TensorView & cudnn_output_sequence,
TensorView & input_delta,
TensorView & sequence_delta_scratch,
TensorView & input_delta_scratch,
const Buffer & forward_state,
Buffer & backward_scratch ) const
protected

◆ drive_cudnn_forward_()

void opennn::CudnnRnnState::drive_cudnn_forward_ ( const CudnnRnnDims & ,
const TensorView & input,
TensorView & sequence_output,
TensorView & output,
TensorView & cudnn_input_sequence,
TensorView & cudnn_output_sequence,
Buffer & forward_state,
bool is_training,
uint64_t parameters_version ) const
protected

◆ ensure_cudnn_setup_()

virtual CudnnRnnShapeSlot & opennn::CudnnRnnState::ensure_cudnn_setup_ ( Index batch_size,
bool for_training ) const
protectedpure virtual

◆ lock_backend_state()

unique_lock< mutex > opennn::CudnnRnnState::lock_backend_state ( ) const
inlineprotected

◆ pack_weights_to_cudnn_()

virtual void opennn::CudnnRnnState::pack_weights_to_cudnn_ ( Buffer & ,
uint64_t parameters_version ) const
protectedpure virtual

◆ prepare_cudnn_forward_state_()

void opennn::CudnnRnnState::prepare_cudnn_forward_state_ ( Buffer & ,
bool is_training,
const CudnnRnnShapeSlot &  ) const
protected

◆ unpack_gradients_from_cudnn_()

virtual void opennn::CudnnRnnState::unpack_gradients_from_cudnn_ ( Buffer & ) const
protectedpure virtual

Member Data Documentation

◆ backend_state

BackendState opennn::CudnnRnnState::backend_state
mutableprotected