[package]
edition = "2024"
rust-version = "1.85"
name = "cortiq-engine"
version = "0.5.71"
authors = ["Oleg Kirichenko <urevich55@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Portable inference runtime for the CMF model format, with no ML framework underneath: runs on CPU, and on GPU (Vulkan / Metal / DX12) with the `gpu` feature; tokenizer, chat templates and dynamic per-skill weight overlay."
homepage = "https://github.com/infosave2007/cmf"
readme = "README.md"
keywords = [
"llm",
"inference",
"quantization",
"model-format",
"gpu",
]
categories = ["science"]
license = "Apache-2.0"
repository = "https://github.com/infosave2007/cmf"
resolver = "2"
[features]
gpu = [
"dep:wgpu",
"dep:pollster",
"dep:bytemuck",
"dep:ash",
]
[lib]
name = "cortiq_engine"
path = "src/lib.rs"
[[example]]
name = "decode_flat"
path = "examples/decode_flat.rs"
[[example]]
name = "matvec_bw"
path = "examples/matvec_bw.rs"
[[example]]
name = "o1_recovery"
path = "examples/o1_recovery.rs"
[[example]]
name = "pool_lat"
path = "examples/pool_lat.rs"
[[example]]
name = "q4_layout_ab"
path = "examples/q4_layout_ab.rs"
[[example]]
name = "q4tp_gpu_ab"
path = "examples/q4tp_gpu_ab.rs"
[[example]]
name = "topk_probe"
path = "examples/topk_probe.rs"
[[test]]
name = "bake_loop_invariants"
path = "tests/bake_loop_invariants.rs"
[[test]]
name = "bake_nt_coop"
path = "tests/bake_nt_coop.rs"
[[test]]
name = "chat_template_parity"
path = "tests/chat_template_parity.rs"
[[test]]
name = "chat_tools"
path = "tests/chat_tools.rs"
[[test]]
name = "dit_parity"
path = "tests/dit_parity.rs"
[[test]]
name = "expert_dtypes"
path = "tests/expert_dtypes.rs"
[[test]]
name = "fcd_gradcheck"
path = "tests/fcd_gradcheck.rs"
[[test]]
name = "fcd_runtime_parity"
path = "tests/fcd_runtime_parity.rs"
[[test]]
name = "fcd_train"
path = "tests/fcd_train.rs"
[[test]]
name = "g3ntok_probe"
path = "tests/g3ntok_probe.rs"
[[test]]
name = "g4bos_probe"
path = "tests/g4bos_probe.rs"
[[test]]
name = "g4chat_nll"
path = "tests/g4chat_nll.rs"
[[test]]
name = "g4head_probe"
path = "tests/g4head_probe.rs"
[[test]]
name = "g4nll_only"
path = "tests/g4nll_only.rs"
[[test]]
name = "g4tok_probe"
path = "tests/g4tok_probe.rs"
[[test]]
name = "gdn_oracle"
path = "tests/gdn_oracle.rs"
[[test]]
name = "golden_parity"
path = "tests/golden_parity.rs"
[[test]]
name = "gpu_attend_parity"
path = "tests/gpu_attend_parity.rs"
[[test]]
name = "gpu_axpy_parity"
path = "tests/gpu_axpy_parity.rs"
[[test]]
name = "gpu_bt_route_parity"
path = "tests/gpu_bt_route_parity.rs"
[[test]]
name = "gpu_compress_parity"
path = "tests/gpu_compress_parity.rs"
[[test]]
name = "gpu_dsv4_frame"
path = "tests/gpu_dsv4_frame.rs"
[[test]]
name = "gpu_gemm_scratch"
path = "tests/gpu_gemm_scratch.rs"
[[test]]
name = "gpu_hc_parity"
path = "tests/gpu_hc_parity.rs"
[[test]]
name = "gpu_micro"
path = "tests/gpu_micro.rs"
[[test]]
name = "gpu_mv4b_parity"
path = "tests/gpu_mv4b_parity.rs"
[[test]]
name = "gpu_olora_parity"
path = "tests/gpu_olora_parity.rs"
[[test]]
name = "gpu_q4t_bench"
path = "tests/gpu_q4t_bench.rs"
[[test]]
name = "gpu_q4t_mm"
path = "tests/gpu_q4t_mm.rs"
[[test]]
name = "gpu_q4t_mm_wgpu"
path = "tests/gpu_q4t_mm_wgpu.rs"
[[test]]
name = "gpu_q4tp"
path = "tests/gpu_q4tp.rs"
[[test]]
name = "gpu_q4tp_batch"
path = "tests/gpu_q4tp_batch.rs"
[[test]]
name = "gpu_q4tp_parity"
path = "tests/gpu_q4tp_parity.rs"
[[test]]
name = "gpu_rope_parity"
path = "tests/gpu_rope_parity.rs"
[[test]]
name = "gpu_route_parity"
path = "tests/gpu_route_parity.rs"
[[test]]
name = "gpu_spec_buf_diff"
path = "tests/gpu_spec_buf_diff.rs"
[[test]]
name = "gpu_spec_txn"
path = "tests/gpu_spec_txn.rs"
[[test]]
name = "imagegen_smoke"
path = "tests/imagegen_smoke.rs"
[[test]]
name = "kv_reuse"
path = "tests/kv_reuse.rs"
[[test]]
name = "mask_quant"
path = "tests/mask_quant.rs"
[[test]]
name = "mmh3_parity"
path = "tests/mmh3_parity.rs"
[[test]]
name = "mmh3_vae_parity"
path = "tests/mmh3_vae_parity.rs"
[[test]]
name = "nystrom_parity"
path = "tests/nystrom_parity.rs"
[[test]]
name = "o1_runtime"
path = "tests/o1_runtime.rs"
[[test]]
name = "q4tp_ladder_forms"
path = "tests/q4tp_ladder_forms.rs"
[[test]]
name = "qwen3te_parity"
path = "tests/qwen3te_parity.rs"
[[test]]
name = "qwen3vis_parity"
path = "tests/qwen3vis_parity.rs"
[[test]]
name = "skills"
path = "tests/skills.rs"
[[test]]
name = "textenc_parity"
path = "tests/textenc_parity.rs"
[[test]]
name = "tokenizer_parity"
path = "tests/tokenizer_parity.rs"
[[test]]
name = "vacuum"
path = "tests/vacuum.rs"
[[test]]
name = "vae_parity"
path = "tests/vae_parity.rs"
[[test]]
name = "vk_coop"
path = "tests/vk_coop.rs"
[[test]]
name = "x86_gemm"
path = "tests/x86_gemm.rs"
[dependencies.anyhow]
version = "1"
[dependencies.base64]
version = "0.22"
[dependencies.bytemuck]
version = "1"
features = ["derive"]
optional = true
[dependencies.cortiq-core]
version = "0.5.65"
[dependencies.fancy-regex]
version = "0.14"
[dependencies.minijinja]
version = "2"
features = [
"loop_controls",
"json",
]
[dependencies.minijinja-contrib]
version = "2"
features = ["pycompat"]
[dependencies.pollster]
version = "0.4"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tracing]
version = "0.1"
[dependencies.unicode-normalization]
version = "0.1"
[dependencies.wgpu]
version = "30"
optional = true
[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies.libc]
version = "0.2"
[target.'cfg(any(target_os = "linux", target_os = "windows", target_os = "android"))'.dependencies.ash]
version = "0.38"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.29"