Banc d'essai inférence GPU

DaniiT — comparaison de deux postes pour l'inférence locale de LLM. Relevé du 9 octobre 2026.

Légende : mesuré sur la machine · fiche officielle NVIDIA · non mesuré / inconnu

Les machines

DANIIT009

Fedora · AMD Ryzen 9 9950X (16 cœurs / 32 threads) · 46 Go RAM
GPU : GeForce RTX 5070 Ti

Daniit010

Ubuntu · AMD Ryzen 5 PRO 5655G (6 cœurs / 12 threads) · 30 Go RAM · Ollama (EuroLLM-22B)
GPU : GeForce RTX 5060 Ti 16 Go

Comparaison des GPU

CaractéristiqueRTX 5070 Ti (DANIIT009)RTX 5060 Ti (Daniit010)
Architecture / puceBlackwell · GB203Blackwell · GB206
Cœurs CUDA8 9604 608
VRAM16 303 Mio · 16 Go GDDR716 Go GDDR7 (non relevé, NVML indisponible)
Bus mémoire / bande passante256 bits · 896 Go/s128 bits · 448 Go/s
Fréquence boost (officielle)2,45 GHz2,57 GHz
Fréquences max (mesurées)GPU 3 090 MHz · mémoire 14 001 MHznon mesuré
Puissancelimite 300 W (défaut = max) · TGP 300 WTGP 180 W · limite réelle non mesurée
Lien PCIemax Gen 4 x16 (carte PCIe 5.0, plafonnée par la plateforme ? Gen 1 au repos)actuel 8 GT/s (Gen 3) x8 · carte PCIe 5.0 x8 — le Ryzen 5655G est limité au PCIe 3.0
Pilote / CUDA615.71.09 · CUDA 13.4module noyau 595.84, bibliothèque NVML 595.91 (incohérence : nvidia-smi HS)
VBIOS98.03.58.00.8598.06.39.80.12

Sources : NVIDIA RTX 5070 Ti · NVIDIA RTX 5060 Ti. Mesures : nvidia-smi (DANIIT009), /proc/driver/nvidia, lspci et sysfs (Daniit010).

⚠ Daniit010 : nvidia-smi est en panne (incohérence pilote/bibliothèque NVML 595.84 / 595.91). Il faut la corriger, souvent par un simple redémarrage, avant de pouvoir relever la VRAM et la consommation sur cette machine. Les tokens/s restent mesurables sans elle.

Modèles retenus

Tous en quantification Q4_K_M (tag par défaut sur ollama.com), identiques sur les deux machines, et tous sous 10 Go pour laisser de la place au contexte (num_ctx 8192) dans 16 Go.

Tag OllamaTaille (ollama.com)VRAM estimée (ctx 8192)TestsPourquoi
qwen2.5vl:7b6,0 Go≈ 7–8 Go1Modèle vision de référence, rapide
gemma3:12b8,1 Go≈ 10–11 Go1, 2, 3Multimodal (vision + texte) : seul modèle passant les 3 tests
qwen2.5-coder:14b9,0 Go≈ 11 Go2, 3Spécialiste du code
qwen3:14b9,3 Go≈ 11–12 Go2, 3Généraliste récent avec raisonnement (le bloc <think> est ignoré à l'extraction)

Écartés : deepseek-coder-v2:16b (installé sur DANIIT009, mais publié en Q4_0, pas en Q4_K_M), et EuroLLM-22B (13 Go : trop juste dans 16 Go avec le contexte, il n'est pas orienté code, et les deux machines n'ont pas le même GGUF). Les estimations de VRAM sont théoriques, la VRAM réelle sera mesurée. Aucun de ces 4 modèles n'est encore installé sur les machines : run_all.sh les télécharge (≈ 33 Go par machine).

Protocole

Les 3 tests

1. Reconnaissance d'image

Chat tigré assis sur un muret

Le modèle décrit une photo fixe en répondant en JSON. Réponse attendue : cat, 1, green, tabby, sitting, true. Score sur 6, correspondance exacte. Image : « Cat November 2010-1a », Alvesgaspar, Wikimedia Commons, licence CC BY-SA 3.0 (libre, mais pas du domaine public).

Look at the image and answer ONLY with a JSON object, no other text, using exactly these keys:
{"animal": "<species in one lowercase English word>", "count": <number of animals visible, integer>, "eye_color": "<one lowercase word>", "coat_pattern": "<one lowercase word>", "posture": "<sitting|standing|lying>", "background_sky": <true|false>}

2. Génération d'un site statique

Page vitrine d'une boulangerie de Minsk : index.html + style.css. Le script vérifie 22 points : doctype, titre, lien CSS, header/nav/h1, sections #about/#menu/#contact, tableau d'au moins 4 produits en BYN, adresse, footer, pas de JS, règle @media 600px, accolades CSS équilibrées.

Create a static landing page for "Khleb & Co", an artisan bakery in Minsk, Belarus.
Requirements:
- Exactly two files: index.html and style.css. No JavaScript, no external CDN, no images files (use CSS colors only).
- index.html must be valid HTML5 with <!DOCTYPE html>, <html lang="en">, <meta charset="utf-8">, <meta name="viewport" ...>, <title> containing "Khleb & Co", and a <link rel="stylesheet" href="style.css">.
- A <header> with the bakery name in an <h1> and a <nav> with links to #about, #menu, #contact.
- Three <section> elements with id="about", id="menu" and id="contact".
- The menu section contains a <table> with at least 4 products and prices in BYN.
- The contact section contains the address "Nezavisimosti Avenue 10, Minsk" and opening hours.
- A <footer> with the text "© 2026 Khleb & Co".
- style.css must be responsive: include at least one @media (max-width: 600px) rule.
Output format: output each file as a fenced code block whose first line is a comment-free header line "FILE: <path>" placed immediately before the block, like this:
FILE: index.html
```html
...
```
FILE: style.css
```css
...
```
Output nothing else.

3. Génération d'un projet Django à deux pages

Projet benchsite, app pages, accueil + contact avec formulaire. Le script écrit les fichiers dans un dossier temporaire, puis lance manage.py check et runserver. Il vérifie que / et /contact/ renvoient 200, que le titre est présent et que le formulaire contient le jeton CSRF (14 points).

Create a minimal Django 5 project named "benchsite" with one app named "pages".
Requirements:
- Files to produce (and only these): manage.py, benchsite/__init__.py, benchsite/settings.py, benchsite/urls.py, benchsite/wsgi.py, pages/__init__.py, pages/apps.py, pages/views.py, pages/urls.py, pages/forms.py, pages/templates/pages/base.html, pages/templates/pages/home.html, pages/templates/pages/contact.html.
- settings.py: DEBUG = True, ALLOWED_HOSTS = ["*"], SQLite database at BASE_DIR / "db.sqlite3", "pages" in INSTALLED_APPS, APP_DIRS templates enabled, a SECRET_KEY string.
- URL "/" renders home.html with an <h1> containing "Welcome to BenchSite".
- URL "/contact/" renders contact.html with a Django form (ContactForm in forms.py with fields name, email, message) rendered inside a <form method="post"> with {% csrf_token %}. On valid POST, render the same page with the text "Thank you".
- Both templates extend base.html, which has links to both pages.
- No database models, no migrations needed.
Output format: output each file as a fenced code block, with a line "FILE: <path>" immediately before each block, for example:
FILE: manage.py
```python
...
```
Output nothing else.

Scripts / Comment lancer

Fichiers : bench.py · run_all.sh · README.md · prompts : test1, test2, test3 · test1.jpg

Sur DANIIT009 et sur Daniit010, mêmes commandes, la machine étant au repos (rien d'autre sur le GPU) :

mkdir -p ~/bench && cd ~/bench
for f in bench.py run_all.sh test1.jpg prompts/test1_vision.txt prompts/test2_static_site.txt prompts/test3_django.txt; do
  curl -fsSL --create-dirs -o $f https://inference.daniit-software.by/bench/$f; done
chmod +x run_all.sh && ./run_all.sh
# résultat : results/$(hostname)-AAAA-MM-JJ.json
scp results/*.json lxc-139:/var/www/inference.daniit-software.by/results/   # puis ajouter le nom dans results/index.json

Sur Daniit010, corriger d'abord nvidia-smi (redémarrage), sinon la VRAM et la puissance restent vides.

Résultats de benchmark pas encore mesuré

Aucun test n'a encore été lancé. Aucune donnée pour l'instant.