14 if (!graph || !path) {
18 FILE *out = fopen(path,
"wb");
20 fprintf(stderr,
"ck_codegen_v2_emit_runtime: failed to open %s: %s\n",
21 path, strerror(errno));
52 "ck_v2_prefill_runtime",
53 "ck_v2_decode_runtime",
54 "ck_v2_backward_runtime");
59 " ck_v2_run_forward();\n"
int ck_codegen_v2_emit_runtime(const CKIRV2Graph *graph, const char *path, CKEmitMode mode)
void ck_codegen_v2_emit_dispatch(FILE *out, const CKIRV2Graph *graph)
void ck_codegen_v2_emit_struct(FILE *out, const CKIRV2Graph *graph, const CKMemPlan *plan, const char *tag)
void ck_codegen_v2_emit_sections(FILE *out, const CKIRV2Graph *graph, const CKMemPlan *prefill_plan, const CKMemPlan *decode_plan, const CKMemPlan *backward_plan)
void ck_codegen_v2_emit_schedule(FILE *out, const CKIRV2Graph *graph, const char *prefill_runtime, const char *decode_runtime, const char *backward_runtime)
int ck_codegen_v2_emit_preamble(FILE *out)
int ck_mem_plan_build_training_with_tokens(const CKIRV2Graph *graph, CKMemPlan *plan, size_t alignment_bytes, int tokens_override)
void ck_mem_plan_free(CKMemPlan *plan)
#define CK_MEM_PLAN_DEFAULT_ALIGN
int ck_mem_plan_build_inference_with_tokens(const CKIRV2Graph *graph, CKMemPlan *plan, size_t alignment_bytes, int tokens_override)