From bfadfde2275c78261308975ced9be7dfa001894c Mon Sep 17 00:00:00 2001 From: czoli1976 <64466170+czoli1976@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:03:44 +0100 Subject: [PATCH 1/2] bench: add Pocket TTS (Kyutai) to the CI bench suite: the flow LM streaming decode step and 25-token prefill on the shape-static graph, one flow-net Euler step, and a 12-frame Mimi decoder chunk. Covers ONNX KV-cache streaming decode (ScatterND cache writes, full-window masked attention), a shape absent from the suite. Co-Authored-By: Claude Fable 5 --- .travis/benches.toml | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/.travis/benches.toml b/.travis/benches.toml index 18bf01ef39..3530f77885 100644 --- a/.travis/benches.toml +++ b/.travis/benches.toml @@ -300,3 +300,47 @@ kind = "llm" name = "qwen3-1_7B-q40ef16-541" model = "Qwen3-1.7B-q40ef16.541.nnef.tgz" backends = ["metal", "cuda"] + +# --- Pocket TTS (Kyutai, CC-BY-4.0; 100M-param CPU TTS, 24 kHz / 12.5 Hz frames). +# ONNX export with explicit KV-cache states rewritten shape-static so the streaming +# step position is a runtime input. decode = one 80 ms frame of the flow LM; +# prefill25 = one 25-token text chunk; flow = one Euler step of the latent flow net; +# mimi decoder = a 12-frame (960 ms) chunk. Random i64 inputs cast to 0: a valid +# stream position, and the graphs are full-window so compute is position-independent. + +[[bench]] +kind = "net" +name = "pocket-tts-flow-lm" +variant = "decode" +model = "pocket-tts-en/flow_lm_main_static.onnx" +archive = "pocket-tts-en.tar.gz" +args = """--onnx-ignore-output-shapes --onnx-ignore-output-types --onnx-ignore-value-info + -i 1,1,32,f32 -i 1,0,1024,f32 + -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64""" + +[[bench]] +kind = "net" +name = "pocket-tts-flow-lm" +variant = "prefill25" +model = "pocket-tts-en/flow_lm_main_static.onnx" +archive = "pocket-tts-en.tar.gz" +args = """--onnx-ignore-output-shapes --onnx-ignore-output-types --onnx-ignore-value-info + -i 1,0,32,f32 -i 1,25,1024,f32 + -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64 -i 2,1,1000,16,64,f32 -i 0,f32 -i 1,i64""" + +[[bench]] +kind = "net" +name = "pocket-tts-flow-net" +variant = "euler1" +model = "pocket-tts-en/flow_lm_flow.onnx" +archive = "pocket-tts-en.tar.gz" +args = "--onnx-ignore-output-shapes -i 1,1024,f32 -i 1,1,f32 -i 1,1,f32 -i 1,32,f32" + +[[bench]] +kind = "net" +name = "pocket-tts-mimi-decoder" +variant = "chunk12" +model = "pocket-tts-en/mimi_decoder.onnx" +archive = "pocket-tts-en.tar.gz" +args = """--onnx-ignore-output-shapes --onnx-ignore-output-types --onnx-ignore-value-info + -i 1,12,32,f32 -i 1,bool -i 1,512,6,f32 -i 1,bool -i 1,64,2,f32 -i 1,256,6,f32 -i 1,bool -i 1,256,2,f32 -i 1,bool -i 1,128,0,f32 -i 1,128,5,f32 -i 1,bool -i 1,128,2,f32 -i 1,bool -i 1,64,0,f32 -i 1,64,4,f32 -i 1,bool -i 1,64,2,f32 -i 1,bool -i 1,32,0,f32 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 1,bool -i 1,512,16,f32 -i 1,bool -i 1,1,6,f32 -i 1,bool -i 1,64,2,f32 -i 1,bool -i 1,32,0,f32 -i 1,bool -i 1,512,2,f32 -i 1,bool -i 1,64,4,f32 -i 1,bool -i 1,128,2,f32 -i 1,bool -i 1,64,0,f32 -i 1,bool -i 1,128,5,f32 -i 1,bool -i 1,256,2,f32 -i 1,bool -i 1,128,0,f32 -i 1,bool -i 1,256,6,f32 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 1,512,16,f32""" From 57e7ca7220f41799f2669bc13810e3ac847e4e75 Mon Sep 17 00:00:00 2001 From: czoli1976 <64466170+czoli1976@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:31:41 +0100 Subject: [PATCH 2/2] bench: add DeepFilterNet3 (three streaming submodels at 1 s pinned time) and DTLN (both LSTM stages, one 8 ms frame with external state) to the bench suite. Small CPU speech-enhancement workloads: sub-100 us LSTM frames and depthwise-conv-heavy decoders, complementing the KV-cache decode entries. Co-Authored-By: Claude Fable 5 --- .travis/benches.toml | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/.travis/benches.toml b/.travis/benches.toml index 3530f77885..3469a566d7 100644 --- a/.travis/benches.toml +++ b/.travis/benches.toml @@ -344,3 +344,46 @@ model = "pocket-tts-en/mimi_decoder.onnx" archive = "pocket-tts-en.tar.gz" args = """--onnx-ignore-output-shapes --onnx-ignore-output-types --onnx-ignore-value-info -i 1,12,32,f32 -i 1,bool -i 1,512,6,f32 -i 1,bool -i 1,64,2,f32 -i 1,256,6,f32 -i 1,bool -i 1,256,2,f32 -i 1,bool -i 1,128,0,f32 -i 1,128,5,f32 -i 1,bool -i 1,128,2,f32 -i 1,bool -i 1,64,0,f32 -i 1,64,4,f32 -i 1,bool -i 1,64,2,f32 -i 1,bool -i 1,32,0,f32 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 1,bool -i 1,512,16,f32 -i 1,bool -i 1,1,6,f32 -i 1,bool -i 1,64,2,f32 -i 1,bool -i 1,32,0,f32 -i 1,bool -i 1,512,2,f32 -i 1,bool -i 1,64,4,f32 -i 1,bool -i 1,128,2,f32 -i 1,bool -i 1,64,0,f32 -i 1,bool -i 1,128,5,f32 -i 1,bool -i 1,256,2,f32 -i 1,bool -i 1,128,0,f32 -i 1,bool -i 1,256,6,f32 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 2,1,8,1000,64,f32 -i 1,i64 -i 1,i64 -i 1,512,16,f32""" + +# --- DeepFilterNet3 (Rikorose/DeepFilterNet, MIT/Apache-2.0) — speech enhancement. +# The three streaming submodels, symbolic time pinned at export to 100 frames +# (1 s of audio at the 10 ms hop): encoder, ERB-mask decoder, deep-filter decoder. + +[[bench]] +kind = "net" +name = "dfn3-enc" +variant = "1s" +model = "dfn3/enc.onnx" +archive = "dfn3.tar.gz" + +[[bench]] +kind = "net" +name = "dfn3-erb-dec" +variant = "1s" +model = "dfn3/erb_dec.onnx" +archive = "dfn3.tar.gz" + +[[bench]] +kind = "net" +name = "dfn3-df-dec" +variant = "1s" +model = "dfn3/df_dec.onnx" +archive = "dfn3.tar.gz" + +# --- DTLN (breizhn/DTLN, MIT) — dual-stage LSTM speech denoiser, one 8 ms frame +# per call with LSTM state threaded through graph I/O (external-state pattern). +# model_2's free batch dim on outputs is pinned to 1 (tf2onnx export artifact). + +[[bench]] +kind = "net" +name = "dtln-stage1" +variant = "frame" +model = "dtln/model_1.onnx" +archive = "dtln.tar.gz" + +[[bench]] +kind = "net" +name = "dtln-stage2" +variant = "frame" +model = "dtln/model_2_fixed.onnx" +archive = "dtln.tar.gz"