Loading...
Searching...
No Matches
Classes |
Public Member Functions |
Static Public Member Functions |
Public Attributes |
Static Public Attributes |
List of all members
opennn::AttentionOperator Struct Reference
#include <opennn/network/operators/attention_operator.h>
Inheritance diagram for opennn::AttentionOperator:
Classes | |
| struct | SdpaBf16Pack |
Public Member Functions | |
| void | set (Index, Index, Index, Index, CausalMask, Type) |
| vector< TensorSpec > | forward_scratch_specs (Index) const |
| TensorSpec | backward_scratch_spec (Index) const |
| vector< TensorSpec > | sdpa_gradient_scratch_specs (Index) const |
| TensorSpec | sdpa_qkv_pack_spec (Index) const |
| vector< TensorSpec > | sdpa_state_specs (Index) const |
| void | forward_propagate (ForwardPropagation &, size_t, ForwardPropagationMode) override |
| void | back_propagate (ForwardPropagation &, BackPropagation &, size_t) const override |
| void | concatenate_output_heads (ForwardPropagation &, size_t) const |
| void | split_output_delta (ForwardPropagation &, BackPropagation &, size_t) const |
| AttentionOperator () | |
| ~AttentionOperator () override | |
| AttentionOperator (AttentionOperator &&) noexcept | |
| AttentionOperator & | operator= (AttentionOperator &&) noexcept |
| AttentionOperator (const AttentionOperator &)=delete | |
| AttentionOperator & | operator= (const AttentionOperator &)=delete |
Public Member Functions inherited from opennn::Operator | |
| virtual | ~Operator ()=default |
| virtual vector< TensorSpec > | parameter_specs () const |
| virtual vector< TensorSpec > | state_specs () const |
| virtual vector< SlotQuantization > | parameter_quantization () const |
| virtual vector< ParameterSlot > | parameter_slots () |
| virtual void | link_parameters (span< const TensorView > views) |
| virtual void | link_gradients (span< const TensorView > views) |
| virtual void | link_states (span< const TensorView >) |
| virtual void | link_parameter_scales (span< const TensorView >) |
| bool | link_slots (span< const TensorView > views, TensorView *ParameterSlot::*member) |
| virtual void | initialize_states () |
| virtual void | set_weights_dtype (Type new_weights_dtype) |
| virtual void | set_parameters_random () |
| virtual void | set_parameters_glorot () |
| virtual void | set_parameters_pytorch () |
| virtual void | to_JSON (JsonWriter &) const |
| virtual void | from_JSON (const Json *) |
| virtual void | load_state_from_JSON (const Json *) |
| TensorView & | get_input (ForwardPropagation &forward_propagation, size_t layer, size_t slot_index=0) const noexcept |
| vector< TensorView > & | get_inputs (ForwardPropagation &forward_propagation, size_t layer) const noexcept |
| TensorView & | get_output (ForwardPropagation &forward_propagation, size_t layer, size_t slot_index=0) const noexcept |
| TensorView & | get_output_delta (BackPropagation &back_propagation, size_t layer, size_t slot_index=0) const noexcept |
| TensorView & | get_input_delta (BackPropagation &back_propagation, size_t layer, size_t slot_index=0) const noexcept |
Static Public Member Functions | |
| static bool | sdpa_supported (Type, Device) |
Public Attributes | |
| Index | heads_number = 0 |
| Index | head_dimension = 0 |
| Index | query_sequence_length = 0 |
| Index | source_sequence_length = 0 |
| bool | use_causal_mask = false |
| bool | use_sdpa = false |
| bool | interleaved_heads = false |
| bool | zero_padded_queries = false |
| MatrixR | causal_mask |
| DropoutOperator | dropout |
| size_t | scratch_slot = 0 |
| size_t | attention_output_slot = 0 |
| size_t | concatenated_output_delta_slot = 0 |
| size_t | sdpa_gradient_slot = 0 |
| size_t | sdpa_qkv_pack_slot = 0 |
| size_t | sdpa_state_slot = 0 |
| size_t | dropout_mask_slot = 0 |
Public Attributes inherited from opennn::Operator | |
| Type | compute_dtype = Type::FP32 |
| Type | weights_dtype = Type::FP32 |
| vector< size_t > | input_slots = {0} |
| vector< size_t > | output_slots = {1} |
| vector< size_t > | input_delta_slots = {1} |
| vector< size_t > | output_delta_slots = {0} |
Static Public Attributes | |
| static constexpr size_t | sdpa_scratch_slots_count = 8 |
| static constexpr size_t | sdpa_state_slots_count = 4 |
Constructor & Destructor Documentation
◆ AttentionOperator() [1/3]
| opennn::AttentionOperator::AttentionOperator | ( | ) |
◆ ~AttentionOperator()
|
override |
◆ AttentionOperator() [2/3]
|
noexcept |
◆ AttentionOperator() [3/3]
|
delete |
Member Function Documentation
◆ back_propagate()
|
overridevirtual |
Reimplemented from opennn::Operator.
◆ backward_scratch_spec()
| TensorSpec opennn::AttentionOperator::backward_scratch_spec | ( | Index | ) | const |
◆ concatenate_output_heads()
| void opennn::AttentionOperator::concatenate_output_heads | ( | ForwardPropagation & | , |
| size_t | ) const |
◆ forward_propagate()
|
overridevirtual |
Reimplemented from opennn::Operator.
◆ forward_scratch_specs()
| vector< TensorSpec > opennn::AttentionOperator::forward_scratch_specs | ( | Index | ) | const |
◆ operator=() [1/2]
|
noexcept |
◆ operator=() [2/2]
|
delete |
◆ sdpa_gradient_scratch_specs()
| vector< TensorSpec > opennn::AttentionOperator::sdpa_gradient_scratch_specs | ( | Index | ) | const |
◆ sdpa_qkv_pack_spec()
| TensorSpec opennn::AttentionOperator::sdpa_qkv_pack_spec | ( | Index | ) | const |
◆ sdpa_state_specs()
| vector< TensorSpec > opennn::AttentionOperator::sdpa_state_specs | ( | Index | ) | const |
◆ sdpa_supported()
◆ set()
| void opennn::AttentionOperator::set | ( | Index | , |
| Index | , | ||
| Index | , | ||
| Index | , | ||
| CausalMask | , | ||
| Type | ) |
◆ split_output_delta()
| void opennn::AttentionOperator::split_output_delta | ( | ForwardPropagation & | , |
| BackPropagation & | , | ||
| size_t | ) const |
Member Data Documentation
◆ attention_output_slot
| size_t opennn::AttentionOperator::attention_output_slot = 0 |
◆ causal_mask
| MatrixR opennn::AttentionOperator::causal_mask |
◆ concatenated_output_delta_slot
| size_t opennn::AttentionOperator::concatenated_output_delta_slot = 0 |
◆ dropout
| DropoutOperator opennn::AttentionOperator::dropout |
◆ dropout_mask_slot
| size_t opennn::AttentionOperator::dropout_mask_slot = 0 |
◆ head_dimension
| Index opennn::AttentionOperator::head_dimension = 0 |
◆ heads_number
| Index opennn::AttentionOperator::heads_number = 0 |
◆ interleaved_heads
| bool opennn::AttentionOperator::interleaved_heads = false |
◆ query_sequence_length
| Index opennn::AttentionOperator::query_sequence_length = 0 |
◆ scratch_slot
| size_t opennn::AttentionOperator::scratch_slot = 0 |
◆ sdpa_gradient_slot
| size_t opennn::AttentionOperator::sdpa_gradient_slot = 0 |
◆ sdpa_qkv_pack_slot
| size_t opennn::AttentionOperator::sdpa_qkv_pack_slot = 0 |
◆ sdpa_scratch_slots_count
|
staticconstexpr |
◆ sdpa_state_slot
| size_t opennn::AttentionOperator::sdpa_state_slot = 0 |
◆ sdpa_state_slots_count
|
staticconstexpr |
◆ source_sequence_length
| Index opennn::AttentionOperator::source_sequence_length = 0 |
◆ use_causal_mask
| bool opennn::AttentionOperator::use_causal_mask = false |
◆ use_sdpa
| bool opennn::AttentionOperator::use_sdpa = false |
◆ zero_padded_queries
| bool opennn::AttentionOperator::zero_padded_queries = false |
Public Member Functions inherited from