Go to file
Richard Loyer 101d1cd7ed tests infra HTP/HMX : verdict, le HTP n'est pas le bon outil pour TTS
5 tests systématiques sur les hypothèses non-explorées :

A. USE_HMX=0 vs USE_HMX=1 sur sched CP :
   - HVX 20% plus rapide que HMX à batch=1 (tile 32×32 sous-utilisé)
   - Mais aucun ne bat baseline CPU (110 ms/frame)
   - HVX et HMX bit-exact entre eux ; les deux divergent de CPU (codes
     différents -> trajectoire talker diverge -> N=64 vs 33).

B. op_offload=true vs false : false -16% sur CP HMX (placement strict
   moins coûteux). Quick win retenu (env KZTTS_CP_OFFLOAD).

C. Profile fin (KZTTS_CP_PROFILE=1) par sub-step :
   - sched_reset+alloc : 0.1 ms (négligeable !)
   - tensor_set/get : 0.0 ms (opt_hostbuf=1 = ION partagé)
   - compute : 6-11 ms (95 % du temps !)
   -> L'overhead sched n'est PAS le problème. Le compute HTP
      lui-même est plus lent que CPU pour batch=1. Hypothèse #1
      (sched_reserve + ctx persistant) INVALIDÉE.

D. Talker option C (use_htp=true, GGML_HEXAGON_GDN_PREFILL=1) :
   - Prefill : 87 ms -> 185 ms (+112%)
   - Talker per-frame : 32 ms -> 81 ms (+154%)
   -> Pour un petit modèle (0.6B), l'overhead routing HTP par token
      dépasse le gain compute. Le pattern option C documenté
      marche pour Qwen3.5-4B, PAS pour Qwen3-TTS-Talker.

VERDICT GLOBAL : le HTP est non-rentable sur TOUS nos workloads TTS.
- BigVGAN : bloqué (nrows > 1024)
- CP : régresse (batch=1)
- Talker : régresse (trop petit pour amortir routing)

CLAUDE.md le notait partiellement ('CPU NEON bat HVX 3.4× sur M=1') mais
on n'avait pas tiré la conséquence globale : notre TTS n'a pas de
workload HTP-friendly.

LEVIERS RESTANTS (sans HTP) :
1. Streaming pipeline (1 session) : RTF inchangé mais TTFB 5s->500ms
2. Réduction overhead CP CPU (½ session) : ctx réutilisé entre sub-forwards
3. Decoder optim NEON conv1d : R&D long
4. Quantization Q8/Q4 CP : compromis qualité

Code committé reste opt-in (KZTTS_CP_HTP, KZTTS_DECODER_HTP) et neutre
au runtime. Le path par défaut RTF=3.0 est intact.

Détails complets dans dist/PERF_INFRA_TESTS.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 16:40:56 +02:00
.claude Rapport R&D complet: synthese session, perf, cascade, #277, briques, reste a faire 2026-05-25 22:27:34 +02:00
dist tests infra HTP/HMX : verdict, le HTP n'est pas le bon outil pour TTS 2026-05-29 16:40:56 +02:00
docs GDN chunkwise P1.2: VTCM state prefill=neutre, prouve compute-bound 3S2/tok -> gain=WY matmul (palier dur). oracle 28/28, pp98 2026-05-26 16:30:08 +02:00
eval eval: verdict (assisté, à valider) -> ship Qwen3.5-lmq4 2026-05-26 23:23:00 +02:00
ql@6e0edba837 ql: bump pour qwen3 dense IMROPE (ql:6e0edba) 2026-05-28 13:54:27 +02:00
.gitignore eval: kit qualité A/B aveugle Qwen3.5-lmq4 vs dense (decode CPU, template, reasoning off) 2026-05-26 22:24:23 +02:00
CHANTIER_HMX_DENSE.md chantier dense-HMX #4: 0x2e décodé = AEE_ECONNRESET (reset watchdog CDSP), pas une corruption de valeurs 2026-05-27 19:20:28 +02:00
CLAUDE.md R&D: battre pte=lm_head HMX INT4+spec decode+ctx binary; mur=lm_head CPU 2026-05-25 18:46:28 +02:00
RAPPORT_RD.md RAPPORT §7: piste kernel GDN fermee — GDN-compute != goulot prefill (fork ql) 2026-05-26 21:46:05 +02:00
c4.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc2.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc3.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
cascade_test.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
cf.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
qcmp.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
spk.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00