Loading...
Searching...
No Matches
grouped_query_attention_layer.h
Go to the documentation of this file.
12void rotary_build_tables(TensorView&, TensorView&, Index sequence_length, Index rotary_dim, float base);
15void grouped_attention_forward(const TensorView& query, const TensorView& key, const TensorView& value,
Index get_head_dim() const
Definition grouped_query_attention_layer.h:129
Index get_sequence_length() const
Definition grouped_query_attention_layer.h:125
friend class Qwen3
Definition grouped_query_attention_layer.h:159
bool uses_sequence_position() const noexcept override
Definition grouped_query_attention_layer.h:148
void set(const Shape &, Index, Index, Index, float, float, bool new_use_qk_norm, const string &)
Index get_hidden() const
Definition grouped_query_attention_layer.h:126
Index get_q_heads() const
Definition grouped_query_attention_layer.h:127
Shape get_output_shape() const override
Definition grouped_query_attention_layer.h:123
void apply_input_shape(const Shape &) override
Index get_kv_heads() const
Definition grouped_query_attention_layer.h:128
void write_JSON_body(JsonWriter &) const override
vector< TensorSpec > get_forward_specs(Index) const override
bool get_use_qk_norm() const
Definition grouped_query_attention_layer.h:130
ForwardSlotKind get_forward_slot_kind(size_t slot) const override
Definition grouped_query_attention_layer.h:138
bool accepts_input_rank(Index rank) const override
Definition grouped_query_attention_layer.h:147
GroupedQueryAttention(const Shape &=Shape({0, 0}), Index q_heads=0, Index kv_heads=0, Index head_dim=0, float rope_theta=1000000.0f, float rms_epsilon=1.0e-6f, bool use_qk_norm=true, const string &="grouped_query_attention")
Shape get_input_shape() const noexcept override
Definition grouped_query_attention_layer.h:122
bool uses_compact_inference() const noexcept
void on_compute_dtype_changed() override
Definition grouped_query_attention_layer.h:152
void read_JSON_body(const Json *) override
bool is_forward_slot_inference_elidable(size_t, Device, Index) const noexcept
Definition json.h:92
Definition json.h:24
virtual bool is_forward_slot_inference_elidable(size_t, Device) const noexcept
Definition layer.h:95
Layer(LayerType type, Trainability trainability=Trainability::Trainable)
Definition layer.h:210
Definition configuration.h:10
void rotary_build_tables(TensorView &, TensorView &, Index sequence_length, Index rotary_dim, float base)
void qk_norm_forward(const TensorView &input, const TensorView &weight, TensorView &output, Index head_dim, float epsilon)
constexpr bool is_one_of(const T &value, const Candidates &... candidates)
Definition opennn_types.h:273
void qk_rope_cache_append(const TensorView &qkv_row, const TensorView &q_norm_weight, const TensorView &k_norm_weight, const TensorView &cos_table, const TensorView &sin_table, TensorView &q_out, TensorView &key_cache, TensorView &value_cache, Index n_query_heads, Index n_kv_heads, Index head_dim, float epsilon, const int *position_device)
void rotary_forward(const TensorView &, const TensorView &, const TensorView &, TensorView &, Index head_dim, Index rotary_dim, Index position_offset)
Index grouped_attention_decode_scratch_floats(Index n_query_heads, Index head_dim)
void scale(const TensorView &, const TensorView &, const TensorView &, const TensorView &, const TensorView &, const TensorView &, float, float, TensorView &)
void grouped_attention_forward(const TensorView &query, const TensorView &key, const TensorView &value, TensorView &output, Index n_query_heads, Index n_kv_heads, Index head_dim, bool causal, float scale, Index query_position_offset=0, float *decode_partials=nullptr, const int *position_device=nullptr)
Definition back_propagation.h:19
Definition tensor_types.h:340
Definition forward_propagation.h:52
Definition grouped_query_attention_layer.h:30
void back_propagate(ForwardPropagation &, BackPropagation &, size_t) const override
void set(Index new_sequence_length, Index new_hidden, Index new_q_heads, Index new_kv_heads, Index new_head_dim, float new_rope_theta, float new_rms_epsilon, bool new_use_qk_norm)
static constexpr size_t forward_scratch_slots_count
Definition grouped_query_attention_layer.h:31
friend class GroupedQueryAttention
Definition grouped_query_attention_layer.h:55
void link_parameters(span< const TensorView >) override
~GroupedQueryAttentionOperator() override
vector< SlotQuantization > parameter_quantization() const override
void forward_propagate(ForwardPropagation &, size_t, ForwardPropagationMode) override
const Buffer * get_rope_tables() const noexcept
Definition grouped_query_attention_layer.h:48
void link_parameter_scales(span< const TensorView >) override
void set_parameters_random() override
vector< TensorSpec > parameter_specs() const override
vector< TensorSpec > forward_scratch_specs() const
GroupedQueryAttentionOperator()
Definition operator.h:28
Definition tensor_types.h:172
Definition tensor_types.h:540