[Perf][Auk] VAE cuda graph and tiling (#7881)

Signed-off-by: liuqihao <liuqihao970610@gmail.com>
Signed-off-by: Yueqian Lin <linyueqian@outlook.com>
Co-authored-by: Yueqian Lin <linyueqian@outlook.com>
This commit is contained in:
BruceLoveDecimalandYueqian Lin authored and GitHub committed 2026-09-29 23:27:01 +00:00
1 parent 8ad6e801f5
commit 3a28882946
7 files changed
+818 -24

No files matched your search

+12 -4
View File
@@ -132,15 +132,23 @@ transcripts, speaker similarity to the upstream output 0.993 to 0.999, log-mel
L1 0.11 to 0.47 (the upstream VAE-resampling noise floor is 0.39). Flash:
0.989 to 0.999 and 0.24 to 0.51. Wall per request on the second call: base
1.0 to 2.0 s for 3.5 to 10.9 s of audio, Flash 0.17 to 0.30 s; engine start
about 47 s with a warm page cache.
about 47 s with a warm page cache, plus the codec decode compile on the
diffusion stage (about a minute on a cold Inductor cache, ~30 s warm).
## Notes
- Memory usage: about 25 GB peak on the device for a 12 s generation with
both stages resident (deploy defaults: encoder 0.45, diffusion stage 0.35
of device memory).
- Key flags: `enforce_eager` on both stages (the encoder walks the decoder
layers itself for the layer fusion). `enable_prefix_caching` must stay off
of device memory), plus about 1 GB of CUDA graph pools for the compiled
codec decode buckets.
- Key flags: `enforce_eager` on the encoder stage (it walks the decoder
layers itself for the layer fusion); the diffusion stage runs with
`enforce_eager: false` so the codec decode is compiled into bucketed CUDA
graphs at startup (128/256/512 latent frames, i.e. up to 10.24 s; longer
clips are decoded in overlapping 512-frame tiles of the same graph;
override with `model_config.auk_vae_compile_shapes` and
`auk_vae_tile_frames`). The DiT itself stays eager unless
`diffusion_compile_granularity: full`. `enable_prefix_caching` must stay off
for the encoder: a cache hit skips prompt positions that the fused
condition needs. `enable_chunked_prefill` is off by default: forcing it
(128-token chunks, so two to three chunks per prompt) reproduces the