← Back to C-Kernel-Engine Docs Doxygen Source Documentation
 
Loading...
Searching...
No Matches
ck_model_api.h File Reference

Generic Model API - Model-agnostic interface for CK-Engine. More...

#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  CKModelConfig
 

Functions

void * ck_model_create (void)
 
void ck_model_decode (void *model, const int *token, int token_index)
 
void ck_model_forward (void *model, const int *tokens, int num_tokens)
 
void ck_model_free (void *model)
 
void * ck_model_get_base (void *model)
 
const CKModelConfigck_model_get_config (void)
 
float * ck_model_get_logits (void *model)
 
size_t ck_model_get_total_bytes (void *model)
 
int ck_model_load_weights (void *model, const char *bump_path)
 
void ck_model_precompute_rope (void *model)
 
int ck_model_verify_canaries (void *model)
 

Detailed Description

Generic Model API - Model-agnostic interface for CK-Engine.

All generated models emit the same function names, making the inference engine completely model-agnostic. To use different models, compile separate binaries.

Usage: void *model = ck_model_create(); ck_model_load_weights(model, "weights.bump"); ck_model_forward(model, tokens, num_tokens); // prefill ck_model_decode(model, &token, token_index); // decode float *logits = ck_model_get_logits(model); ck_model_free(model);

Definition in file ck_model_api.h.

Function Documentation

◆ ck_model_create()

void * ck_model_create ( void  )

Create and allocate model memory. Returns opaque model pointer, or NULL on failure.

Definition at line 8582 of file v6.5/test_generated/generic_api_test.c.

8582 {
8583 MODELModel *model = malloc(sizeof(MODELModel));
8584 if (!model) return NULL;
8585 if (model_model_allocate(model) != 0) {
8586 free(model);
8587 return NULL;
8588 }
8589 return model;
8590}
int model_model_allocate(MODELModel *model)

References model_model_allocate(), and qwen2_0_5b_decode_model_allocate().

Referenced by main().

◆ ck_model_decode()

void ck_model_decode ( void *  model,
const int *  token,
int  token_index 
)

Decode single token at position token_index. Used for autoregressive generation.

Definition at line 8606 of file v6.5/test_generated/generic_api_test.c.

8606 {
8607 model_decode((MODELModel *)model, token, token_index);
8608}
const char * token
Definition tokenizer.h:307
void model_decode(MODELModel *model, const int *token, int token_index)

References model_decode(), qwen2_0_5b_decode_decode(), and token.

Referenced by run_benchmark(), run_benchmark(), run_generation_test(), and run_generation_test().

◆ ck_model_forward()

void ck_model_forward ( void *  model,
const int *  tokens,
int  num_tokens 
)

Forward pass (prefill) - process multiple tokens. Used for initial prompt processing.

Definition at line 8602 of file v6.5/test_generated/generic_api_test.c.

8602 {
8603 model_forward((MODELModel *)model, tokens, num_tokens);
8604}
void model_forward(MODELModel *model, const int *tokens, int num_tokens)

References model_forward(), and qwen2_0_5b_decode_forward().

◆ ck_model_free()

void ck_model_free ( void *  model)

Free model memory.

Definition at line 8592 of file v6.5/test_generated/generic_api_test.c.

8592 {
8593 if (!model) return;
8594 model_model_free((MODELModel *)model);
8595 free(model);
8596}
void model_model_free(MODELModel *model)

References model_model_free(), and qwen2_0_5b_decode_model_free().

Referenced by main().

◆ ck_model_get_base()

void * ck_model_get_base ( void *  model)

Get model base pointer (for weight loading).

Definition at line 8619 of file v6.5/test_generated/generic_api_test.c.

8619 {
8620 return ((MODELModel *)model)->base;
8621}

Referenced by load_weights_from_bump(), and load_weights_from_bump().

◆ ck_model_get_config()

const CKModelConfig * ck_model_get_config ( void  )

Get model configuration (dimensions, sizes, etc.) This is available before allocation.

Definition at line 8578 of file v6.5/test_generated/generic_api_test.c.

8578 {
8579 return &g_model_config;
8580}
static CKModelConfig g_model_config

References g_model_config, g_model_config, g_model_config, and g_model_config.

Referenced by load_weights_from_bump(), load_weights_from_bump(), main(), run_benchmark(), run_benchmark(), run_generation_test(), and run_generation_test().

◆ ck_model_get_logits()

float * ck_model_get_logits ( void *  model)

Get pointer to output logits buffer. Size is vocab_size floats.

Definition at line 8610 of file v6.5/test_generated/generic_api_test.c.

8610 {
8611 MODELModel *m = (MODELModel *)model;
8612 return MODEL_PTR(m, MODEL_FOOTER.logits);
8613}

References QWEN2_0_5B_DECODEFooterOffsets::logits, QWEN2_0_5B_DECODE_FOOTER, and QWEN2_0_5B_DECODE_PTR.

Referenced by run_generation_test(), and run_generation_test().

◆ ck_model_get_total_bytes()

size_t ck_model_get_total_bytes ( void *  model)

Get total model size in bytes.

Definition at line 8623 of file v6.5/test_generated/generic_api_test.c.

8623 {
8624 return ((MODELModel *)model)->total_bytes;
8625}

Referenced by load_weights_from_bump(), and load_weights_from_bump().

◆ ck_model_load_weights()

int ck_model_load_weights ( void *  model,
const char *  bump_path 
)

Load weights from BUMP file into model. Returns 0 on success, -1 on failure.

◆ ck_model_precompute_rope()

void ck_model_precompute_rope ( void *  model)

Precompute RoPE cos/sin caches. Call once after allocation, before inference.

Definition at line 8598 of file v6.5/test_generated/generic_api_test.c.

8598 {
8599 model_precompute_rope((MODELModel *)model);
8600}
void model_precompute_rope(MODELModel *model)

References model_precompute_rope(), and qwen2_0_5b_decode_precompute_rope().

Referenced by main().

◆ ck_model_verify_canaries()

int ck_model_verify_canaries ( void *  model)

Verify memory canaries (debug). Returns number of corrupted canaries (0 = OK).

Definition at line 8615 of file v6.5/test_generated/generic_api_test.c.

8615 {
8616 return model_verify_canaries((MODELModel *)model);
8617}
int model_verify_canaries(MODELModel *model)

References model_verify_canaries(), and qwen2_0_5b_decode_verify_canaries().

Referenced by run_benchmark(), and run_benchmark().