34 const char *emit_path = NULL;
35 const char *meta_path = NULL;
36 const char *lower_mode_str = NULL;
37 const char *lower_out = NULL;
38 char lower_out_buf[128] = {0};
41 for (
int i = 1; i < argc; ++i) {
42 if (strcmp(argv[i],
"--emit") == 0 && i + 1 < argc) {
43 emit_path = argv[++i];
44 }
else if (strcmp(argv[i],
"--emit-lib") == 0) {
46 }
else if (strcmp(argv[i],
"--meta") == 0 && i + 1 < argc) {
47 meta_path = argv[++i];
48 }
else if (strcmp(argv[i],
"--lower") == 0 && i + 1 < argc) {
49 lower_mode_str = argv[++i];
50 }
else if (strcmp(argv[i],
"--lower-out") == 0 && i + 1 < argc) {
51 lower_out = argv[++i];
55 if (strcmp(argv[1],
"--ir") == 0) {
57 fprintf(stderr,
"Missing IR v2 JSON path after --ir\n");
60 const char *ir_path = argv[2];
62 fprintf(stderr,
"Failed to parse IR v2 JSON: %s\n", ir_path);
66 const char *config_path = argv[1];
69 fprintf(stderr,
"Failed to parse config.json: %s\n", config_path);
73 fprintf(stderr,
"Failed to build IR v2 decoder\n");
78 fprintf(stderr,
"Failed to apply weights meta: %s\n", meta_path);
85 printf(
"[ck_ir_v2_demo] buffers=%d nodes=%d layers=%d\n",
89 const char *mode_str = (emit_mode ==
CK_EMIT_LIBRARY) ?
"library" :
"standalone";
91 fprintf(stderr,
"[ck_ir_v2_demo] %s runtime written to %s\n", mode_str, emit_path);
93 fprintf(stderr,
"[ck_ir_v2_demo] failed to write %s runtime to %s\n", mode_str, emit_path);
100 fprintf(stderr,
"[ck_ir_v2_demo] invalid lower mode: %s\n", lower_mode_str);
105 snprintf(lower_out_buf,
sizeof(lower_out_buf),
"build/ir_v2_%s.json",
107 lower_out = lower_out_buf;
112 fprintf(stderr,
"[ck_ir_v2_demo] failed to build backward graph\n");
117 fprintf(stderr,
"[ck_ir_v2_demo] lowered IR v2 JSON written to %s\n", lower_out);
119 fprintf(stderr,
"[ck_ir_v2_demo] failed to write lowered IR v2 JSON to %s\n", lower_out);
124 fprintf(stderr,
"[ck_ir_v2_demo] lowered IR v2 JSON written to %s\n", lower_out);
126 fprintf(stderr,
"[ck_ir_v2_demo] failed to write lowered IR v2 JSON to %s\n", lower_out);
131 if (strcmp(argv[1],
"--ir") != 0) {
133 fprintf(stderr,
"[ck_ir_v2_demo] IR v2 JSON written to build/ir_v2.json\n");
135 fprintf(stderr,
"[ck_ir_v2_demo] Failed to write IR v2 JSON\n");
int ck_codegen_v2_emit_runtime(const CKIRV2Graph *graph, const char *path, CKEmitMode mode)
int ck_model_config_from_hf_json(const char *path, CKModelConfig *cfg)
void ck_ir_v2_free(CKIRV2Graph *graph)
int ck_ir_v2_apply_meta(const char *path, CKIRV2Graph *graph)
int ck_ir_v2_serialize_json(const CKIRV2Graph *graph, const char *path)
int ck_ir_v2_build_decoder(const CKModelConfig *cfg, CKIRV2Graph *graph)
int ck_ir_v2_parse_json(const char *path, CKIRV2Graph *graph)
int ck_ir_v2_build_decoder_backward(const CKIRV2Graph *forward, CKIRV2Graph *backward)
static void print_usage(const char *argv0)
const char * ck_ir_v2_lower_mode_name(CKIRV2LowerMode mode)
int ck_ir_v2_lower_emit_json(const CKIRV2Graph *input, CKIRV2LowerMode mode, const char *path)
@ CK_IR_V2_LOWER_BACKWARD
int ck_ir_v2_lower_mode_from_string(const char *name, CKIRV2LowerMode *out_mode)