#include <math.h>#include <stdint.h>#include <stddef.h>#include <stdlib.h>#include <string.h>#include "ck_threadpool.h"#include "ckernel_quant.h"Go to the source code of this file.
Functions | |
| void | assistant_layer_scale_forward (float *hidden, const float *scale, int tokens, int embed_dim) |
| static float | ck_bf16_to_f32 (uint16_t v) |
| static void | ck_gemma4_dequant_q5_k_block (const ck_gemma4_block_q5_K *block, float *out) |
| static void | ck_gemma4_embed_range (int begin, int end, void *opaque) |
| static float | ck_gemma4_gelu (float x) |
| static void | ck_gemma4_prepare_bf16_range (int begin, int end, void *opaque) |
| static void | ck_gemma4_prepare_parallel (int tokens, ck_range_fn_t fn, ck_gemma4_prepare_args_t *args) |
| static void | ck_gemma4_prepare_q5_range (int begin, int end, void *opaque) |
| static uint8_t | ck_gemma4_q5_k_value (const ck_gemma4_block_q5_K *block, int subblock, int i) |
| static void | ck_gemma4_rmsnorm_tmp (const float *x, const float *gamma, float *out, int n, float eps) |
| static void | ck_gemma4_unpack_q5_k_scales (const uint8_t *scales, uint8_t *sc, uint8_t *m) |
| void | gemma4_final_logit_softcap_forward (float *logits, int tokens, int vocab_size, float cap) |
| void | gemma4_per_layer_embed_forward (float *hidden, const float *per_layer_input, const float *inp_gate, const float *proj, const float *post_norm, const float *out_scale, int tokens, int layer, int num_layers, int embed_dim, int per_layer_dim, float eps) |
| void | gemma4_per_layer_prepare_bf16_forward (float *per_layer_input, const float *hidden, const int32_t *token_ids, const uint16_t *per_layer_token_emb, const uint16_t *per_layer_model_proj, const float *per_layer_proj_norm, int tokens, int num_layers, int embed_dim, int per_layer_dim, int vocab_size, float eps) |
| void | gemma4_per_layer_prepare_forward (float *per_layer_input, const float *hidden, const int32_t *token_ids, const void *per_layer_token_emb, const uint16_t *per_layer_model_proj, const float *per_layer_proj_norm, int tokens, int num_layers, int embed_dim, int per_layer_dim, int vocab_size, float eps) |
| void assistant_layer_scale_forward | ( | float * | hidden, |
| const float * | scale, | ||
| int | tokens, | ||
| int | embed_dim | ||
| ) |
Definition at line 389 of file gemma4_per_layer_embed.c.
|
inlinestatic |
Definition at line 18 of file gemma4_per_layer_embed.c.
Referenced by ck_gemma4_prepare_bf16_range(), and ck_gemma4_prepare_q5_range().
|
static |
Definition at line 64 of file gemma4_per_layer_embed.c.
References CK_FP16_TO_FP32, ck_gemma4_q5_k_value(), and ck_gemma4_unpack_q5_k_scales().
Referenced by ck_gemma4_prepare_q5_range().
|
static |
Definition at line 306 of file gemma4_per_layer_embed.c.
References ck_gemma4_gelu(), ck_gemma4_rmsnorm_tmp(), end, and QK_K.
Referenced by gemma4_per_layer_embed_forward().
|
inlinestatic |
Definition at line 26 of file gemma4_per_layer_embed.c.
Referenced by ck_gemma4_embed_range().
|
static |
Definition at line 157 of file gemma4_per_layer_embed.c.
References ck_bf16_to_f32(), ck_gemma4_rmsnorm_tmp(), end, QK_K, and token.
Referenced by gemma4_per_layer_prepare_bf16_forward().
|
static |
Definition at line 207 of file gemma4_per_layer_embed.c.
References ck_threadpool_global(), ck_threadpool_n_threads(), and ck_threadpool_parallel_for_n().
Referenced by gemma4_per_layer_prepare_bf16_forward(), and gemma4_per_layer_prepare_forward().
|
static |
Definition at line 106 of file gemma4_per_layer_embed.c.
References ck_bf16_to_f32(), ck_gemma4_dequant_q5_k_block(), ck_gemma4_rmsnorm_tmp(), end, QK_K, and token.
Referenced by gemma4_per_layer_prepare_forward().
|
inlinestatic |
Definition at line 56 of file gemma4_per_layer_embed.c.
Referenced by ck_gemma4_dequant_q5_k_block().
|
static |
Definition at line 80 of file gemma4_per_layer_embed.c.
Referenced by ck_gemma4_embed_range(), ck_gemma4_prepare_bf16_range(), and ck_gemma4_prepare_q5_range().
|
inlinestatic |
Definition at line 33 of file gemma4_per_layer_embed.c.
Referenced by ck_gemma4_dequant_q5_k_block().
| void gemma4_final_logit_softcap_forward | ( | float * | logits, |
| int | tokens, | ||
| int | vocab_size, | ||
| float | cap | ||
| ) |
Definition at line 405 of file gemma4_per_layer_embed.c.
References vocab_size.
| void gemma4_per_layer_embed_forward | ( | float * | hidden, |
| const float * | per_layer_input, | ||
| const float * | inp_gate, | ||
| const float * | proj, | ||
| const float * | post_norm, | ||
| const float * | out_scale, | ||
| int | tokens, | ||
| int | layer, | ||
| int | num_layers, | ||
| int | embed_dim, | ||
| int | per_layer_dim, | ||
| float | eps | ||
| ) |
Definition at line 348 of file gemma4_per_layer_embed.c.
References ck_gemma4_embed_range(), ck_threadpool_global(), ck_threadpool_n_threads(), ck_threadpool_parallel_for_n(), and QK_K.
| void gemma4_per_layer_prepare_bf16_forward | ( | float * | per_layer_input, |
| const float * | hidden, | ||
| const int32_t * | token_ids, | ||
| const uint16_t * | per_layer_token_emb, | ||
| const uint16_t * | per_layer_model_proj, | ||
| const float * | per_layer_proj_norm, | ||
| int | tokens, | ||
| int | num_layers, | ||
| int | embed_dim, | ||
| int | per_layer_dim, | ||
| int | vocab_size, | ||
| float | eps | ||
| ) |
Definition at line 254 of file gemma4_per_layer_embed.c.
References ck_gemma4_prepare_bf16_range(), ck_gemma4_prepare_parallel(), QK_K, and vocab_size.
| void gemma4_per_layer_prepare_forward | ( | float * | per_layer_input, |
| const float * | hidden, | ||
| const int32_t * | token_ids, | ||
| const void * | per_layer_token_emb, | ||
| const uint16_t * | per_layer_model_proj, | ||
| const float * | per_layer_proj_norm, | ||
| int | tokens, | ||
| int | num_layers, | ||
| int | embed_dim, | ||
| int | per_layer_dim, | ||
| int | vocab_size, | ||
| float | eps | ||
| ) |
Definition at line 218 of file gemma4_per_layer_embed.c.
References ck_gemma4_prepare_parallel(), ck_gemma4_prepare_q5_range(), QK_K, and vocab_size.