Contexte de 256K sur une RTX 3050 8 Go dans une station DDR3

Une station Xeon d’occasion, avec 64 Go de mémoire DDR3 ECC installés (le système en voit environ 62 Go) et une RTX 3050 8 Go, a été configurée pour une fenêtre de contexte de 256K jetons. Les mesures détaillées atteignent 160K jetons, et non l’intégralité des 256K. Une configuration précédente de 16K indiquait 59 jeton/s sur du texte réel.

Le 11 novembre 2026, des résultats ont été publiés depuis la station P3001 : un Intel Xeon E5-2697 v2 (12 cœurs / 24 threads, AVX1 uniquement), 64 Go de RAM DDR3 ECC installés (le système en voit environ 62 Go) à 1333 MT/s, une NVIDIA RTX 3050 8 Go, un SSD NVMe et Ubuntu 24.04. Le logiciel était Strata 0.1.55 (compilation compatible AVX) avec Qwen3.8-Flash-Next IQ3_S, un modèle compressé.

Carte titre : RTX 3050 8 Go, contexte 256K, DDR3, Strata 0.1.55 et Qwen3.8-Flash-Next IQ3_S
Graphisme publié avec le message sur le contexte de 256K. 64 Go de mémoire DDR3 ECC sont installés ; le système en voit environ 62 Go. Le graphisme montre les 64 Go installés.

Configuration précédente de 16K : 59 jeton/s sur du texte réel

Plus tôt le même jour, une configuration à contexte de 16K avec un cache KV 8 bits a été indiquée sur la même machine. Le cache KV est la mémoire de travail du modèle pour les jetons déjà traités. Les chiffres publiés avec ce message :

P3001, Strata 0.1.55, RTX 3050 8 Go, configuration 16K. Contexte → prefill / decode / TTFT.
ContextePrefillDecodeTTFT
2K132 tok/s24.3 tok/s11.9s
8K121 tok/s28.0 tok/s42.6s
16K128.5 tok/s30.7 tok/s87.5s
8K à chaud (en cache)en cache28.7 tok/s0.2–0.33s

Le même message indique 59 jeton/s en décodage de texte réel et 120–132 jeton/s en prefill. Un fil ultérieur précise que ces 59 jeton/s viennent du décodage spéculatif : Strata prédit plusieurs jetons à venir et les vérifie ensemble. Sur du texte réel, l’acceptation des prédictions a été élevée ; sur un remplissage artificiel de benchmark, non (environ 70 % d’acceptation sur un remplissage synthétique, selon le message 16K). Le prefill était limité par la DDR3-1333 et l’AVX1 ; dans cette configuration 16K, 8 Go de VRAM limitaient le contexte à 16K.

Configuration 256K

L’objectif déclaré était une fenêtre de contexte de 256K jetons — une capacité d’environ 262 144 jetons dans une seule requête. Une première tentative a simplement porté la limite à 256K avec un cache KV 8 bits. Selon le message, Strata a alors tenté de garder trop de cette mémoire de travail dans les 8 Go de VRAM du GPU, le cache d’experts du GPU est tombé à zéro emplacement, puis une erreur cuBLAS a suivi. Le serveur répondait encore, mais l’accélération GPU ne fonctionnait pas correctement.

La solution publiée : passer le cache KV de int8 à q4_0 (compression 4 bits), la mémoire par jeton passant d’environ 71 Ko à 29,5 Ko ; définir –kv-resident 20480, afin que seules 20 480 positions KV restent résidentes dans la mémoire GPU et que les données KV supplémentaires viennent de la RAM système ; conserver 46,47 Go d’experts du modèle en RAM DDR3 verrouillée (page-locked) ; préserver 498 emplacements de cache d’experts dans la mémoire GPU ; et limiter le cache d’invites à un seul point de contrôle actif. Paramètres finaux indiqués : –max-context 262144, –kv q4_0, –kv-resident 20480, –prompt-cache 1, –prompt-cache-every 0. Le message indique que Strata a alors démarré correctement et a signalé max_context: 262144, loaded: true.

Vitesse mesurée

Les chiffres suivants sont des mesures du moteur d’inférence lui-même, une exécution par ligne — des données préliminaires, et non des moyennes de benchmarks répétés. Le prefill est le traitement de l’entrée avant la réponse ; le decode est la génération jeton par jeton ; le TTFT est l’attente jusqu’au premier jeton de réponse.

Configuration 256K, exécutions à long contexte. Jetons d’entrée | prefill | TTFT | decode. Une exécution par ligne.
Jetons d’entréePrefillTTFTDecode
7735.9 tok/s3.7s20.1 tok/s
1,561163.5 tok/s9.5s23.1 tok/s
6,161187.6 tok/s32.7s24.6 tok/s
24,061187.6 tok/s128.3s25.7 tok/s
50,061183.4 tok/s273s23.5 tok/s
100,061177.5 tok/s564s23.8 tok/s
160,061172.5 tok/s928s23.8 tok/s

Le message note que le passage d’une entrée d’environ 6K à 160K jetons n’a réduit le prefill que de 188 à 173 jeton/s, tandis que le decode est resté autour de 23–26 jeton/s. Une exécution répétée de 24K jetons avec un contexte en cache a fait passer le TTFT de 128,3 secondes à 0,49 seconde. Une entrée froide de 160K jetons a pris environ 15,5 minutes avant le premier jeton de réponse — attribué au goulet d’étranglement du vieux Xeon et de la mémoire DDR3. Un compte rendu d’agent sur une exécution de 200K jetons est mentionné, mais la ligne numérique complète de cette exécution n’est pas dans le tableau.

Une distinction importante dans le fil : 256K est la limite de contexte configurée et déclarée. Les mesures détaillées atteignent 160K, et non l’intégralité des 256K. La fenêtre complète de 262K n’avait pas encore été mesurée au moment des messages. Une réponse estime environ 26 minutes de prefill à froid pour l’intégralité des 262K, et indique que cela reste à mesurer. Les 59 jeton/s n’ont pas été établis pour des charges à contexte de 256K. Le prefill de la nouvelle configuration était plus élevé que dans la configuration 16K précédente ; le fil le traite comme une différence observée entre configurations, et non comme la preuve d’une seule cause, car le format KV et la disposition mémoire ont aussi changé.

Limites et une estimation énergétique

Limites énumérées dans le fil : mémoire GPU presque pleine, environ 7,5–7,7 Go utilisés sur 8 Go, certaines exécutions indiquant qu’il ne restait que 193–331 Mo de libre ; RAM système d’environ 53 Go sur 62 Go, dont environ 46,5 Go occupés par les experts du modèle verrouillés en mémoire ; un seul point de contrôle chaud du cache d’invites, si bien que le passage d’une très grande conversation à une autre peut exiger de retraiter les entrées (un point de contrôle de 200K jetons à lui seul pourrait occuper environ 4,7 Go) ; et les longues invites à froid sont lentes.

Une estimation approximative de l’énergie pour le prefill de 160K est indiquée comme 300 W × 15,5 minutes ≈ 0,078 kWh. À 0,25 €/kWh, cela représente environ 0,02 € d’électricité. Le message la présente comme une estimation, et non comme une mesure énergétique.

La conclusion pratique du fil est que l’IA locale peu coûteuse n’est pas destinée à concurrencer les modèles en nuage sur des sessions longues et exigeantes, où les services en nuage sont souvent plus rapides et plus économiques. Le principal avantage de ces ordinateurs anciens et peu coûteux est la confidentialité : traiter des documents sensibles localement. Pour beaucoup de ces tâches, une petite fenêtre de contexte suffit. Le résultat publié est qu’une RTX 3050 8 Go peut exécuter un modèle local configuré à 256K sans déplacer toute sa mémoire de travail dans la VRAM. D’autres mesures — y compris la plage de contexte complète, la répétabilité et la qualité sur les tâches — restent nécessaires.

Les résultats des mesures et les journaux sont publiés dans un dépôt public.

Dépôt du projet sur GitHub · Publication sur X · Résultats 16K · Toutes les actualités