Aller au contenu
Décision· ADR-004

Démarrer avec llama.cpp (llama-server) comme runtime d'inférence

Runtime initial du prototype : llama-server, API OpenAI-compatible, slots parallèles ; vLLM sera évalué ensuite.

Confirmée#llama-cpp#vllm#ollama#inference#amd#rocm#vulkanPublié le 16 sept. 2026Mis à jour le 16 sept. 2026Vérifié le 16 sept. 2026À revérifier le 15 déc. 2026
Identifiant
ADR-004
Statut
Acceptée
Date
16 septembre 2026
Décision
Le prototype utilise llama-server (llama.cpp) derrière une API OpenAI-compatible. Le backend (Vulkan ou ROCm) sera choisi par benchmark (Q-008). vLLM/SGLang sont évalués en second temps.
Options étudiées
  • llama.cpp / llama-server
  • Ollama
  • LM Studio
  • vLLM
  • SGLang
  • AMD Lemonade

Contexte

Il faut un serveur d'inférence exposant une API OpenAI-compatible (contrat avec l'interface et le RAG), capable de servir plusieurs utilisateurs, fonctionnant sur GPU AMD gfx1151 sous Linux, et simple à exploiter.

Options étudiées

Runtimegfx1151Multi-utilisateurExploitationVerdict initial
llama-serverVulkan et ROCm, binaires AMD validésslots -np, continuous batching, KV unifié, métriques Prometheusbinaire ou image Docker, MITPoint de départ
OllamaROCm listé (Linux)OLLAMA_NUM_PARALLEL, file FIFO, contexte 4096 par défauttrès simple, moins de contrôlesecours / tests rapides
LM StudioROCm / Vulkan4 prédictions concurrentespropriétaire, orienté poste de travailnon retenu pour un serveur
vLLMdocumenté sur ROCm ≥ 7.0.2 mais images communautaires encore patchéescontinuous batching mature, métriques richeslourd en mémoire et en complexitéà évaluer en phase 2
SGLangnon officiel sur gfx1151idemcommunautaireveille
Lemonade (AMD)builds ROCm nightly gfx1151concurrence non documentéejeuneveille

Décision

llama-server est le runtime du prototype. Le backend Vulkan (RADV) ou ROCm (HIP) sera choisi par mesure. L'API OpenAI-compatible est le contrat entre briques : changer de runtime plus tard ne doit rien casser côté interface ou RAG.

Pourquoi

  • Seul runtime dont le support Strix Halo est à la fois officiel (binaires AMD) et éprouvé par la communauté, avec les meilleurs chiffres publiés (environ 50 tok/s en génération pour gpt-oss-120b).
  • Il expose ce qu'il faut pour le multi-utilisateur (slots, batching) et pour le monitoring (--metrics, /slots).
  • Empreinte d'exploitation minimale : un binaire, un modèle GGUF, une ligne de commande versionnée.

Conséquences

  • Pas de priorité de file documentée dans llama-server : la gestion de priorité, si nécessaire, se fera dans une passerelle en amont.
  • La comparaison Vulkan/ROCm et l'évaluation de vLLM sont des expérimentations planifiées.
  • Cette décision est volontairement réversible : elle sera revue après les benchmarks multi-utilisateurs.
content/decisions/adr-004-llama-cpp-runtime-initial.md330 mots