performance record

#1
by bingoct - opened

hardware

gpu: 3080 20g
cpu: 4650g
mem: 32g
os: win10

#logs
➜ $env:CMF_MMH3_GPU=1; cortiq animate mmh3-turbo-q4tp.cmf ∙ --prompt "A corgi in a chef hat flipping a pancake, sizzling sounds and a cheerful bark."
∙ --width 512 --height 288 --frames 39 --steps 4 --seed 42 `
∙ --out corgi.avi
2026-08-08T08:38:56.782243Z INFO cortiq_core::format: Opened CMF v2: minimax-h3-av | 2361 tensors | 0 masks | vocab embedded | 25196.8 MB
2026-08-08T08:38:57.075613Z INFO cortiq_engine::tokenizer: Tokenizer loaded: 151669 vocab, 151387 merges, 26 added, eos=Some(151643)
encode 0/1 (0.3s)
encode 1/1 (27.0s)
2026-08-08T08:39:26.271931Z INFO wgpu_hal::vulkan::adapter: Found 6 cooperative matrix configurations supported by wgpu
2026-08-08T08:39:27.318745Z INFO cortiq_engine::gpu_wgpu: wgpu GPU path: on (NVIDIA GeForce
RTX 3080 / Vulkan, discrete, weight budget 19229 MB)
2026-08-08T08:39:32.191476Z INFO cortiq_engine::gpu: gpu probe [gemm-nt]: gpu 20.42 ms vs cpu 4.36 ms per op → cpu
denoise 1/4 (461.7s)
2026-08-08T08:46:42.604878Z INFO cortiq_engine::gpu: gpu probe [matmat-wide]: gpu 426.89 ms
vs cpu 1341.05 ms per op → gpu
denoise 2/4 (568.9s)
denoise 3/4 (708.8s)
denoise 4/4 (838.9s)
video vae 0/1 (839.0s)
video vae 1/1 (1200.5s)
audio vae 0/1 (1200.5s)
audio vae 1/1 (1216.1s)
corgi.avi: 512x288, 39 frames at 24 fps (1.62s), 1.62s of 32000 Hz stereo, 2.0 MB in 1217.8s
corgi.wav: stereo PCM

total cost:20min

comment

It’s my first time using cortiq, and it’s so much easier to run compared to ComfyUI. The model size and cost-efficiency are truly impressive!
Looks like Cortiq doesn't support CUDA though. It'd be absolute perfection if this model worked with CUDA-enabled tools.

Thanks for the first field report — an RTX 3080 20G on Windows finishing 512×288×39 in 20 minutes is genuinely useful data, and your log shows the engine doing exactly what it was designed to do.

One clarification on CUDA: your GPU was in use. The line

wgpu GPU path: on (NVIDIA GeForce RTX 3080 / Vulkan, discrete, weight budget 19229 MB)

means cortiq drives the 3080 through Vulkan — the same silicon CUDA would reach, with no CUDA toolkit to install. That is deliberate: one small binary that runs NVIDIA, AMD, Intel and phone GPUs with the same shaders.

Why your run is ~7× slower than the reference card (172 s on an RTX PRO 6000 96 GB): the file is 25.2 GB and your weight budget is ~19 GB, so not every layer stays resident on the card — part of the model streams from system RAM every step, and that dominates. The probe lines in your log are the engine measuring its way around that honestly: gemm-nt went to CPU (transfer-bound over PCIe on your box), matmat-wide went to GPU (3× faster than your CPU). Each op class runs where it is actually faster on your machine, not where a flag says it should.

Two practical knobs while iterating:

  • --width 256 --height 160 --frames 22 renders in ~29 s on the reference card — expect a couple of minutes on the 3080. Good for prompt iteration before the big render.
  • --height 256 instead of 288 roughly halves the video-VAE decode: the tiler covers a 288-px edge with two overlapping 256-px tiles, so you pay 512 rows for 288 rows of picture. An edge of exactly 256 is one tile.

On CUDA-enabled tooling: the output is standard MJPEG+PCM in an AVI plus a WAV, so it drops into any downstream pipeline as-is. A native CUDA backend is not planned, but cooperative-matrix (tensor-core) kernels for this model's GEMMs are the next GPU headroom on the roadmap — that is the gap you are feeling, not a missing API.

It’s really rewarding to see a project evolve from an idea into something that actually works. It feels like building a house for a long time and finally starting to move the furniture in :)

I’m still improving the format, but the solid foundation is already in place.

Sign up or log in to comment