Rapport de performance — Strata UD-Q4_K_XL — toutes les combinaisons GPU
9 runs · 7/7 combinaisons des 3 cartes · la paire 5090PCI + 5090TB5 testée 3 fois (runs D/E/F) · Qwen3.8-Flash-Next Unsloth UD-Q4_K_XL · machine Ultra9 (192.168.1.112) · 2026-10-16 → 17 · rouge = meilleur score de toutes les combinaisons pour ce modèle
Comment lire ce rapport : chaque métrique est une médiane de 3 runs, timings engine. En rouge, la meilleure valeur de la ligne toutes combinaisons confondues (tok/s : la plus élevée ; TTFT : la plus basse).
Verdict : le prefill appartient à la 5090PCI seule — elle bat toutes les combinaisons multi-GPU de 4K à 96K (2 323 → 3 993 tok/s) : une carte au lien natif 42,5 GB/s coûte moins cher qu'un split dont une carte est sur le Thunderbolt 5 partagé (5-6 GB/s).
Le decode appartient à la paire DEF 5090PCI + 5090TB5 : chat 87,9 (run E), agent 154,2 et contexte 64K/32K 128,1 / 130,5 (run F) — soit +45,3 % d'agent et +30,6 % de decode à 64K vs les 3 cartes (run 3).
run 3 (3 cartes) reste la référence multi-GPU de prefill à grand contexte (3 258 / 3 385 tok/s à 64-96K) mais perd tous les decode face à la paire 2×5090.
La paire [0,2] a été mesurée 3 fois (run D 02:20 EDT, run E 14:1x EDT, run F 17:0x EDT — même config, même split) : decode agent 116,3 → 134,8 → 154,2 tok/s en progressant dans la journée — variance intra-journée, la machine montant en température ; le decode 64K/32K gagne +24 à +27 % de D à E/F. Les trois runs sont propres (0 échec, 0 jeton réutilisé, 0 incident moteur).
1. Meilleurs scores — toutes les combinaisons (médianes)
9 runs : A/B/C = cartes seules · run 1 = 5090PCI + 3090TB5 · run 2 = 3090TB5 + 5090TB5 · run 3 = les 3 cartes · runs D/E/F = 5090PCI + 5090TB5 (3 mesures indépendantes). Rouge = meilleur score de la ligne toutes combinaisons confondues ; pour les TTFT le meilleur score est le plus bas. Prefill 64K/96K et decode contexte = suite d'extension ; le reste = suite officielle --long.
2. Machine et cartes (mesuré au chargement)
Modèle 71,73 Go chargés · engine Strata 0.1.44.1 · contexte 262 144 · KV int8 · serveur port 8080 · 223 Go RAM · Windows WDDM · thinking désactivé sur tous les runs.
| Carte | nvidia-smi | Lien | Bande passante mesurée | Rôle dans le comparatif |
| 5090PCI (RTX 5090, PCIe natif) | 0 | PCIe natif | 42,5-42,6 GB/s | runs 1, 3, D/E/F et A (solo) — multi-GPU : porte le gros du modèle (L0-32 sur D/E/F, L3-47 sur 1, L3-32 sur 3 + le plus gros cache d'experts) · carte d'affichage du PC |
| 3090TB5 (RTX 3090) | 1 | Thunderbolt 5 (partagé) | 5,0-5,1 GB/s | runs 1, 2, 3 et C (solo) — multi-GPU : en tête du split (couches 0-2 + petit cache) sur 1/2/3 ; libérée sur D/E/F (les llama-servers de l'user y restent) · solo : test de la bande TB5 de la 24 Go |
| 5090TB5 (RTX 5090, Thunderbolt) | 2 | Thunderbolt 5 (partagé) | 5,9 GB/s | runs 2, 3, D/E/F et B (solo) — multi-GPU : run 2 porte presque tout (L3-47), runs 3 et D/E/F la fin (L33-47 + head) · solo : test de la bande TB5 de la 32 Go |
Les deux cartes TB5 partagent un seul lien Thunderbolt 5 ; l'engine sonde la vitesse par carte et pondère le coût de miss. « 5090PCI », « 3090TB5 », « 5090TB5 » sont les noms utilisés partout dans ce document.
3. Configurations (identiques 1:1, seuls GPU et split changent)
Tout le reste identique sur les 9 runs : pack Q4_K_XL, modèles sur NVMe W:, --ple-io ram, spec 4, MTP, pool-workers 15, conv-cache 24 576 MiB, même env dans les bats (STRATA_PREFILL_HELP=1 + STRATA_SPLIT_MTP_BATCH=1). Slots de conv-cache : 3 sur les multi-GPU, 16 sur la série solo (consigne user 2026-10-16). Le bat C:\Strata(90_5090_q4.bat a été réparé LF→CRLF le 17-10 13:3x EDT (cause racine des double-clics silencieux) ; les 3 bats frères solo ont été réparés de la même façon à 17:0x EDT.
Série solo — une carte à la fois (2026-10-16 → 17)
| A 5090PCI seule | B 5090TB5 seule | C 3090TB5 seule |
| bat / config | 5090_pci_q4.bat
strata-unsloth-ud-q4_k_xl-pci16-solo.json | 5090_tb5_q4.bat
strata-unsloth-ud-q4_k_xl-tb5-solo.json | 3090_tb5_q4.bat
strata-unsloth-ud-q4_k_xl-3090-solo.json |
| carte (nvidia-smi) | 0 | 2 | 1 |
| lien mesuré au chargement | 42,5 GB/s (pcie_frac 0,55) | 5,9 GB/s (pcie_frac 0,16) | 5,1 GB/s (pcie_frac 0,14) |
| cache experts | 7 802 slots / 23 322 MiB | 7 802 slots / 23 322 MiB | 5 256 slots / 15 697 MiB |
| VRAM restante au chargement | 385 MiB * | 385 MiB * | 444 → 312 MiB * |
| instance validée | 2026-10-16 22:30 EDT | 2026-10-17 00:12 EDT | 2026-10-16 22:47 EDT |
* marge mince acceptée : l'engine émet un WARNING « below 1024 MiB », la marge a tenu sur les 44 requêtes des deux suites sans aucun stall (logs engine lus en entier). Le Q4 (71,73 Go) ne tient pas dans une carte : les experts hors VRAM sont streamés depuis la RAM (arène 6 Go épinglée) — chaque run solo est un test de la bande du lien PCIe de la carte. Runs solo lancés sans --pipeline-windows (1 stage, rien à pipeliner).
4. VRAM par GPU et RAM dédiée
VRAM utilisée par carte (calculée capacity − libre « with everything loaded », logs engine de chaque run ; inclut poids des couches, cache d'experts, KV et buffers de session) :
| Config | Carte | Rôle dans le split | Capacité | VRAM utilisée | Libre au chargement |
| run 1 5090PCI + 3090TB5 |
3090TB5 | L0-2 + cache 1 536 slots (4,83 Go) + buffers prompt 3,73 Go | 24,0 Go | ≈ 16,2 Go | 7,99 Go |
| 5090PCI | L3-47 + head + cache 7 311 slots (21,20 Go) | 32 Go 31,84 utiles | ≈ 31,3 Go | 0,73 Go |
| run 2 3090TB5 + 5090TB5 |
3090TB5 | L0-2 + cache 1 536 slots (4,83 Go) + buffers prompt 3,73 Go | 24,0 Go | ≈ 15,7 Go | 8,28 Go |
| 5090TB5 | L3-47 + head + cache 7 475 slots (21,68 Go) | 32 Go | ≈ 31,7 Go | 0,25 Go * |
| run 3 les 3 cartes |
3090TB5 | L0-2 + cache 1 536 slots (4,83 Go) + buffers prompt 3,73 Go | 24,0 Go | ≈ 17,0 Go | 7,03 Go |
| 5090PCI | L3-32 + cache 7 981 slots (23,10 Go) | 32 Go | ≈ 31,1 Go | 0,94 Go |
| 5090TB5 | L33-47 + head + cache 7 501 slots (21,93 Go) | 32 Go | ≈ 31,3 Go | 0,67 Go |
| run DEF 5090PCI + 5090TB5 |
5090PCI | L0-32 + cache 7 995 slots (23,34 Go) + buffers prompt 3,73 Go | 32 Go 31,84 utiles | ≈ 31,4 Go (30 976 MiB relevés sur F) | 0,44 Go * |
| 5090TB5 | L33-47 + head + cache 7 448 slots (21,78 Go) + buffers prompt 3,73 Go | 32 Go | ≈ 31,1 Go (30 680 MiB relevés sur F) | 0,73 Go * |
* WARNING WDDM « below 1024 MiB » présent dès la première requête sur les runs concernés (2 : 0,25 Go ; D/E/F : 447 MiB + 743 MiB ; solos : 385/385/444→312 MiB) — la marge a tenu sur les 44 requêtes de chaque run, zéro stall sur les 9 runs. La 5090PCI garde 1 187 MiB réservés à la carte d'affichage (--vram-reserve-later-mib 1187). Runs E et F : même config et même split que D, même régime VRAM (vérifié nvidia-smi avant le bench F : GPU0 30 976 MiB · GPU2 30 680 MiB · GPU1 23 850 MiB = llama-server de l'user intact).
RAM système dédiée — identique dans les neuf configurations (c'est le même moteur et les mêmes réglages, seule la répartition GPU change) :
| Poste | Taille | Source (mesurée) |
Table PLE / n-gram (320 001 536 lignes, format IQ4_NL) verrouillée en RAM par --ple-io ram | ≈ 28,8 Go | log « PLE table locked in RAM in 10,9 s » ; format de table IQ4_NL = 28,8 Go (docs/DETAILS.md) |
| Arène d'experts épinglée (4 tranches ; plafond WDDM multi-GPU 8 Go) | 6,0 Go | log « 4 slices pinned (6 GiB) » |
| KV streaming épinglé (pages hors VRAM) | 0,26 Go | log « the K/V in 0,26 GiB of pinned RAM » |
| Cache de conversations parkées — budget (plafond, pas une réservation) ; pic observé ≈ 8,0 Go | 24,0 Go max | --conversation-cache-mib 24576 ; log « bytes=8 583 667 960 » |
| Total dédié | ≈ 35 Go fermes + 24 Go de budget | ≈ 59 Go au pire sur 223 Go de RAM |
5. Série solo — suite officielle (médianes)
| Test | A 5090PCI seule | B 5090TB5 seule | C 3090TB5 seule |
| chat decode (tok/s) | 64,3 | 59,6 | 36,6 |
| chat TTFT (s) | 0,63 | 0,67 | 1,06 |
| 4K prefill (tok/s) | 2 323,0 | 383,5 | 289,3 |
| 16K prefill (tok/s) | 3 741,7 | 753,8 | 564,9 |
| 32K prefill (tok/s) | 3 891,4 | 764,6 | 565,7 |
| agent TTFT par tour (s) | 2,07 | 10,39 | 13,90 |
| agent decode (tok/s) | 103,7 | 80,8 | 52,0 |
| agent cache hit (%) | 68,72 (4 jetons re-lus) | 68,62 (72 jetons re-lus) | 68,46 (142 jetons re-lus) |
| durée wall officielle (s) | 114,1 | 434,5 | 588,3 |
Rouge = meilleur score toutes combinaisons confondues (les 9 runs), pas seulement de la série solo.
6. Série solo — extension longs contextes (médianes)
| Test | A 5090PCI seule | B 5090TB5 seule | C 3090TB5 seule |
| prefill 64K (tok/s) | 3 993,4 | 769,5 | 563,3 |
| prefill 96K (tok/s) | 3 894,3 | 768,4 | 564,8 |
| decode ctx 64K (tok/s, ~1 000 jetons) | 96,0 | 78,4 | 47,0 |
| decode ctx 32K (tok/s, ~1 000 jetons) | 113,4 | 78,9 | 47,0 |
| durée wall extension (s) | 256,6 | 1 089,9 | 1 503,5 |
Prefill (tok/s — plus long = plus rapide)
Decode (tok/s)
contexte 64K (~1 000 jetons)
contexte 32K (~1 000 jetons)
7. Lecture — série solo
- Le goulot est le lien PCIe, mesuré au chargement. Le prefill sature le lien à partir de 16K et reste plat de 16K à 96K sur chaque carte : plateau ~3 894 tok/s (5090PCI, 42,5 GB/s natifs), ~768 (5090TB5, 5,9 GB/s), ~565 (3090TB5, 5,1 GB/s) — les vitesses sont proportionnelles aux bandes mesurées.
- Decode : 103,7 / 80,8 / 52,0 — la 5090TB5 est 1,55× la 3090TB5 (bande 5,9 vs 5,1 GB/s) et la 5090PCI 1,28× la 5090TB5 ; le decode dépend moins raide de la bande que le prefill.
- Le chat court est quasi insensible au lien (64,3 / 59,6 / 36,6, prompts de 43–51 jetons) : seuls les gros contextes et l'agent (~14,5K jetons/tour) révèlent l'écart.
- Solo 5090PCI vs multi-GPU : une carte seule au lien natif bat les 6 configurations multi-GPU sur le prefill (2 323–3 994 vs 383–3 385) et reste à −2,3 % du run 3 sur le decode agent (103,7 vs 106,1) — mais la paire D/E/F la dépasse désormais en decode (jusqu'à 154,2).
- 5090TB5 seule = 78 % du decode de la 5090PCI pour 20 % du prefill (80,8 vs 103,7 · 768 vs 3 894) : c'est le bon choix quand la 5090PCI doit rester libre (ComfyUI/MovieGenerator), le mauvais quand il faut du prefill.
- Re-lecture agent de C = 142 jetons/tour (vs 4 sur A, 72 sur B) : carte 24 Go = 5 256 slots experts vs 7 802 — une part des experts de la conversation est garée en RAM et re-lue chaque tour ; le hit reste quasi identique (68,46 vs 68,72 %), les hits étant portés par le cache de conversation (24 Go en RAM).
8. Multi-GPU — suite officielle (médianes)
* run 1 : TTFT chat contaminé par la file d'autres sessions Grok de l'user sur le même serveur (les timings engine restent propres). TTFT = côté client ; vitesses = timings engine. Rouge = meilleur score des 9 runs.
Prefill (tok/s — plus long = plus rapide)
4K
5090PCI + 3090TB5 + 5090TB51 081,0 5090PCI + 5090TB5 (D)1 045,9 5090PCI + 5090TB5 (E)1 033,1 5090PCI + 5090TB5 (F)1 084,6
16K
5090PCI + 3090TB5 + 5090TB52 315,7 5090PCI + 5090TB5 (D)2 168,3 5090PCI + 5090TB5 (E)2 133,3 5090PCI + 5090TB5 (F)2 200,1
32K
5090PCI + 3090TB5 + 5090TB52 868,4 5090PCI + 5090TB5 (D)2 451,0 5090PCI + 5090TB5 (E)2 689,0 5090PCI + 5090TB5 (F)2 687,5
64K (extension)
5090PCI + 3090TB5 + 5090TB53 258,1 5090PCI + 5090TB5 (D)2 754,9 5090PCI + 5090TB5 (E)2 738,2 5090PCI + 5090TB5 (F)2 760,7
96K (extension)
5090PCI + 3090TB5 + 5090TB53 384,8 5090PCI + 5090TB5 (D)2 826,6 5090PCI + 5090TB5 (E)3 001,2 5090PCI + 5090TB5 (F)3 041,8
Decode (tok/s)
chat court
5090PCI + 3090TB5 + 5090TB582,3 5090PCI + 5090TB5 (D)82,5 5090PCI + 5090TB5 (E)87,9 5090PCI + 5090TB5 (F)87,5
agent (6 tours, outils)
5090PCI + 3090TB5 + 5090TB5106,1 5090PCI + 5090TB5 (D)116,3 5090PCI + 5090TB5 (E)134,8 5090PCI + 5090TB5 (F)154,2
contexte 64K (~1 000 jetons)
5090PCI + 3090TB5 + 5090TB598,1 5090PCI + 5090TB5 (D)102,6 5090PCI + 5090TB5 (E)126,8 5090PCI + 5090TB5 (F)128,1
contexte 32K (~1 000 jetons)
5090PCI + 3090TB5 + 5090TB5103,3 5090PCI + 5090TB5 (D)100,6 5090PCI + 5090TB5 (E)128,2 5090PCI + 5090TB5 (F)130,5
9. Multi-GPU — extension longs contextes (médianes)
10. Lecture — multi-GPU
- La paire 2×5090 (D/E/F) est la référence de decode, les 3 cartes (run 3) restent la référence de prefill multi-GPU. vs run 3, la paire gagne tous les decode : chat 87,9 (+6,8 %), agent 154,2 (+45,3 %), contexte 64K 128,1 (+30,6 %), contexte 32K 130,5 (+26,3 %) — et même le 4K prefill (1 084,6 vs 1 081,0, +0,3 %). Elle perd le prefill à moyen/grand contexte : −5,0 % à 16K, −6,3 % à 32K, −15,3 % / −10,1 % à 64-96K.
- Pourquoi le decode de la paire explose : 2 stages au lieu de 3,
pipeline-windows 2 reste actif (désactivé par l'engine sur 3 stages), les deux 5090 ont 32 Go chacune — 15 443 experts résidents, quasi-zéro miss — et le MTP + spéculation tournent avec moins d'overhead de pipeline. La 3090TB5 (24 Go, 5 GB/s) reste à quai, ses llama-servers n'étant pas dérangés.
- Les 3 mesures de la paire [0,2] (D 02:20, E 14:1x, F 17:0x EDT) montrent une dérive intra-journée sur le decode : agent 116,3 → 134,8 → 154,2 · ctx 64K 102,6 → 126,8 → 128,1 · ctx 32K 100,6 → 128,2 → 130,5 — pendant que le prefill reste stable (2 451-2 689 à 32K, 2 738-2 761 à 64K). Machine plus chaude l'après-midi, experts de l'agent de mieux en mieux garés : les médianes du matin (D) sont le pire cas de la paire.
- run 3 (3 cartes) reste le choix quand le prefill à grand contexte domine la charge (documents 64-96K : 3 258/3 385 tok/s, +18 % / +11 % vs la paire) — au prix de 79,4 Go de VRAM totale et de l'engine qui désactive pipeline-windows et adapt-async sur 3 stages.
- run 2 (3090TB5 + 5090TB5) = le choix « 5090PCI libre » : decode proche de run 1 (+8,8 % au chat) mais prefill plafonné à ~780-790 tok/s dès 32K (lien TB5 5-6 GB/s), -62 à -64 %.
- La 5090PCI seule bat encore toutes les combinaisons multi-GPU sur le prefill (2 323-3 994 vs 383-3 385) : une carte seule au lien natif coûte moins cher qu'un split à plusieurs cartes dont une sur le TB5 partagé — vrai aussi à 64-96K (solo A 3 993/3 894 vs run 3 3 258/3 385 vs paire 2 738-2 761 / 2 827-3 042).
11. Cache de conversations parkées (mesuré en production le 2026-10-16)
Coût d'une conversation parkée (KV int8, lignes
conversation cache du log) :
~240 Mo fixes + ~20 Ko/jeton.
| Conversation | Jetons | RAM du snapshot |
| session agent (cette conversation) | 194 142 | 4,04 Go |
| session agent (autre) | 219 203 | 4,45 Go |
| bench 64K | 64 065 | 1,65 Go |
| petite requête | 59 | 0,24 Go |
Budget 24 576 MiB ≈ 1,2 M de jetons parkés au total ; les slots sont un plafond de nombre, le budget est la limite dure (éviction gracieuse, la conversation évictée relit son histoire à ~2 950 tok/s).
12. Propreté des mesures (9 runs)
- Les 9 runs : exit 0 sur les deux suites, 0 échec (396 requêtes), zéro incident moteur (
no progress / thread stacks / ERROR) pendant les runs. 0 jeton réutilisé sur tous les tests froids (tag unique par prompt, reused_tokens = 0 vérifié dans chaque JSON). Médianes de 3 runs partout.
- Timings engine (prefill/decode) indépendants de la file ; TTFT chat propre sur 8 runs sur 9 (0,34-1,06 s) ; contaminé uniquement sur le run 1 (autres sessions de l'user dans la file, max 127,9 s d'attente).
- run D (instance lancée par l'agent 02:00 EDT, validée 02:06) : file vide, 447 + 743 MiB de marge VRAM, WARNING WDDM attendu, zéro stall, log engine lu en entier.
- run E (instance lancée par l'agent 13:34 EDT via le bat réparé en CRLF) : file vide, 0 échec (officiel 165,6 s · extension 323,2 s, 12/12), log engine 814 lignes sans erreur réelle (2 WARNING VRAM 447 MiB = régime attendu). NB : le fichier
runE-official.log correspond à la 1re passe du bench, mal étiquetée « 1×5090 » (appel sans --config) et supprimée ; les médianes officielles de ce rapport viennent du results.json de la 2e passe (14:14 EDT, invocation avec --config).
- run F (instance lancée par l'user ~16:45 EDT, laissée en ligne après le bench) : file vide, 0 échec (officiel 161,9 s · extension 317,2 s, 12/12), log engine 1 138 lignes 0 incident (balayage regex complet), expert cache hit 97-99 %, KV streaming 90-99 %.
- Durées wall : officiel 114 s (A) · 435 s (B) · 588 s (C) · ~20 min (run 1, file d'autres sessions) · 7,6 min (run 2) · 3,7 min (run 3) · 174 s (D) · 166 s (E) · 162 s (F) ; extension 257 s · 1 090 s · 1 504 s · 7,0 min · 17,8 min · 5,5 min · 345 s (D) · 323 s (E) · 317 s (F).
- Solo A/B/C : marge VRAM mince acceptée (WARNING « below 1024 MiB » : 385 / 385 / 444→312 MiB), zéro stall, logs engine lus en entier (327 / 336 / 338 lignes). Run B : llama-server 11434 relancé sur la 5090PCI pendant le run — sans interaction avec le bench (GPU 2 seul).
13. Fichiers sources
- Rapport markdown (jusqu'au run D) :
C:\Strata-data\bench-q4-comparatif-20261016\REPORT.md · données agrégées des 9 runs : C:\Strata-data\bench-q4-comparatif-20261016\report-data-20261017.json
- Run 1 :
C:\Strata-data\bench-q4-comparatif-20261016\bench-run1-pci16-3090\2026-10-16-community-rtx-5090-plus-rtx-3090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-run1-pci16-3090\extended_results.json
- Run 2 :
C:\Strata-data\bench-q4-comparatif-20261016\bench-run2-tb5-pair\2026-10-16-community-rtx-3090-plus-rtx-3090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-run2-tb5-pair\extended_results.json
- Run 3 :
C:\Strata-data\bench-q4-comparatif-20261016\bench-run3-3gpu\2026-10-16-community-2x-rtx-5090-plus-rtx-3090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-run3-3gpu\extended_results.json
- Run D :
C:\Strata-data\bench-q4-comparatif-20261016\bench-pair-pci-tb5\2026-10-17-community-2x-rtx-5090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-pair-pci-tb5\extended_results.json
- Run E :
C:\Strata-data\bench-q4-comparatif-20261016\bench-pair-pci-tb5-2\2026-10-17-community-2x-rtx-5090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-pair-pci-tb5-2\extended_results.json
- Run F :
C:\Strata-data\bench-q4-comparatif-20261016\bench-pair-pci-tb5-3\2026-10-17-community-2x-rtx-5090-qwen3-8-flash-next-unsloth-ud-q4-k-xl\ + ...\ext-pair-pci-tb5-3\extended_results.json · logs console runF-official.log / runF-extended.log
- Runs solo A/B/C :
...\bench-solo-pci16\, ...\bench-solo-tb5\, ...\bench-solo-3090\ + ...\ext-solo-pci16\, ...\ext-solo-tb5\, ...\ext-solo-3090\extended_results.json
- Logs de sortie console :
run1/2/3-official.log, run1/2/3-extended.log, soloA/B/C-official.log, soloA/B/C-extended.log, runE-official.log (1re passe, voir §12), runF-official.log, runF-extended.log dans C:\Strata-data\bench-q4-comparatif-20261016\
- Logs engine :
C:\Strata\strata-unsloth-ud-q4_k_xl-pci-3090.log (run 1), ...-tb5.log (run 2), strata-unsloth-ud-q4_k_xl.log (run 3), ...-pci-tb5.log (D/E/F), ...-pci16-solo.log (A), ...-tb5-solo.log (B), ...-3090-solo.log (C)
- Outils :
C:\Strata\tools\strata_bench.py (suite officielle --long) · C:\Strata-data\bench-q4-comparatif-20261016\extended_bench.py (extension 64K/96K)