Aller au contenu principal

Service Batch Inference

Rôle : Le consommateur (compute bound / GPU)
Source : services/batch-inference

Responsabilités

Ce service est le « cerveau » de l’opération. Il exécute le réseau de neurones YOLO.

1. Batching dynamique

Il n’enchaîne pas les frames au fil de l’eau : il attend (jusqu’à BATCH_WAIT_MS) pour accumuler assez de frames et remplir un batch GPU.

  • Entrées : Liste de JPEGs provenant de différentes caméras.
  • Sortie : Un seul tenseur [N, 3, 640, 640].

2. Optimisation TensorRT

En production nous n’utilisons pas PyTorch brut. Les modèles sont optimisés en moteurs TensorRT (.engine).

  • Quantification FP16 : Réduit l’usage mémoire d’environ 50 % avec une perte de précision négligeable.
  • Fusion de couches : Combine plusieurs couches du réseau en opérations kernel uniques.

3. Dispatch des résultats

Après l’inférence, le service sépare les résultats du batch en réponses individuelles, les étiquette avec le camera_id d’origine, puis les pousse dans la queue results.