74 #ifndef CKERNEL_SECTION_LAYOUT_H
75 #define CKERNEL_SECTION_LAYOUT_H
88 #define CK_ALIGN_CACHE 64ULL
89 #define CK_ALIGN_SIMD 64ULL
90 #define CK_ALIGN_HUGE_2MB (2ULL << 20)
91 #define CK_ALIGN_HUGE_1GB (1ULL << 30)
106 int intermediate_dim;
118 int aligned_intermediate;
261 size_t d_ln1_gamma, d_ln1_beta;
264 size_t d_wq, d_bq, d_q;
265 size_t d_wk, d_bk, d_k;
266 size_t d_wv, d_bv, d_v;
276 size_t d_ln2_gamma, d_ln2_beta;
300 size_t m_wq, m_bq, m_wk,
m_bk, m_wv, m_bv;
309 size_t v_wq, v_bq, v_wk,
v_bk, v_wv, v_bv;
403 size_t section_start;
425 size_t activation_bytes;
440 uint32_t fusion_flags;
490 int training_enabled,
500 int training_enabled,
501 uint32_t fusion_flags);
522 #define CK_PTR(model, offset) \
523 ((float*)((char*)(model)->base + (offset)))
525 #define CK_PTR_BF16(model, offset) \
526 ((uint16_t*)((char*)(model)->base + (offset)))
529 #define CK_LAYER(model, s, l) \
530 (&(model)->sections[s].layers[l])
533 #define CK_LAYER_GRAD(model, s, l) \
534 (&(model)->sections[s].layer_grads[l])
537 #define CK_HEADER(model, s) \
538 (&(model)->sections[s].header)
541 #define CK_FOOTER(model, s) \
542 (&(model)->sections[s].footer)
void ck_model_free(CKModel *model)
void ck_section_config_init(CKSectionConfig *config, size_t simd_align)
size_t ck_section_plan(CKSection *section, const CKSectionConfig *config, int training_enabled, size_t base_offset)
size_t ck_model_plan(CKModel *model, const CKSectionConfig *configs, int num_sections, int training_enabled, uint32_t fusion_flags)
int ck_model_allocate(CKModel *model, int hugepage_mode)
size_t shared_scratch_bytes
size_t section_weight_bytes
CKLayerOptimizerOffsets * layer_opt
size_t section_activation_bytes
CKLayerGradOffsets * layer_grads
CKFooterGradOffsets footer_grads
size_t section_grad_bytes
const CKBPEConfig * config