Difficulté : Intermédiaire
Guide OMNITRADE
Guide 2026 : Choisir son CPU/GPU pour l’IA en entreprise
Votre équipe démarre un projet IA mais vous ne savez pas quelle configuration acheter ? Suivez ce guide pour sélectionner le CPU et GPU adaptés à vos workloads (entraînement ou inférence) en 30 minutes, avec des benchmarks concrets et des filtres directement sur OMNITRADE.
Le pas-à-pas : Configurer votre recherche OMNITRADE
Ce qu’il vous faut :
- Accès au site OMNITRADE (compte entreprise activé)
- Les spécifications de votre modèle IA (paramètres, précision)
- Le budget électrique de votre datacenter (kW disponible)
- Temps estimé : 30 minutes
Une erreur de compatibilité physique ou électrique bloque le projet. Vérifiez la puissance de votre PDU (Power Distribution Unit) et la longueur maximale des cartes acceptée par votre chassis serveur. Un GPU NVIDIA H100 PCIe fait 31 cm et consomme 350W. Si votre PDU ne fournit que 2 kW par rack, vous saturez avec 5 GPU.
Ouvrez votre terminal et exécutez cette commande pour calculer la mémoire vive nécessaire. Remplacez 7B, 32 et 2 par vos valeurs (paramètres du modèle, précision en bits, taille du batch).
# Calcul mémoire modèle IA (Linux/macOS)
python3 -c "params=7e9; precision=32; batch=2; mem_GB=(params*precision*batch)/(8*1e9); print(f'Mémoire requise : {mem_GB:.1f} GB')"
# Windows PowerShell
$params=7000000000; $precision=32; $batch=2; $mem_GB=($params*$precision*$batch)/(8*1e9); Write-Host "Mémoire requise : $([math]::Round($mem_GB,1)) GB"
Résultat attendu : « Mémoire requise : 56.0 GB ». Si vous voyez une valeur supérieure à 80 GB, vous devez cibler des GPU HBM3 ou passer à la quantification INT8.
Connectez-vous à OMNITRADE, allez dans la catégorie « Serveurs IA & GPU ». Dans la colonne de filtres, cochez « Mémoire GPU » et sélectionnez la plage calculée (ex: 48-80 GB). Ajoutez le filtre « Bus PCIe » en cochant « PCIe 5.0 x16 » pour éviter le bottleneck.
# URL directe de filtre OMNITRADE (copiez-collez dans votre navigateur)
https://www.omnitrade.fr/categorie-produit/serveurs-ia/?filter_gpu_memory=48-80&filter_pcie=5.0_x16&filter_tdp_max=400
Résultat attendu : la page affiche 12 à 15 références (NVIDIA A100, H100, AMD MI300X). Si vous voyez « 0 résultat », élargissez la plage mémoire à 24-80 GB.
Sur la page de résultats, cliquez sur « Exporter » (bouton bleu en haut à droite). Sélectionnez « CSV détaillé » et cochez « Inclure les benchmarks MLPerf ». Enregistrez le fichier sous C:\OMNITRADE\gpu_export.csv ou /home/user/omnitrade/gpu_export.csv.
# Vérifiez le fichier exporté (Linux)
head -n 3 ~/omnitrade/gpu_export.csv
# Windows (PowerShell)
Get-Content C:\OMNITRADE\gpu_export.csv | Select-Object -First 3
Résultat attendu : « reference;gpu_memory;tdp;mlperf_training_resnet;pcie_version;price ». Si le fichier est vide, réactivez l’export dans vos préférences compte entreprise.
Ouvrez le CSV dans Excel ou avec cette commande Python pour calculer le TCO (prix d’achat + électricité 3 ans). Le kWh moyen entreprise 2026 est à 0,18 €.
# Python : calcule TCO GPU
import pandas as pd
df=pd.read_csv('gpu_export.csv', sep=';')
df['electricite_3ans']=df['tdp']*24*365*3*0.18/1000
df['TCO_3ans']=df['price']+df['electricite_3ans']
df_tri=df.sort_values('mlperf_training_resnet', ascending=False)
print(df_tri[['reference','TCO_3ans','mlperf_training_resnet']].head())
Résultat attendu : « NVIDIA H100 PCIe; 45 230 €; 12 450 img/s ». Si le TCO dépasse votre budget de 50 000 €, filtrez sur les RTX 6000 Ada ou AMD MI210.
Retournez sur OMNITRADE, ouvrez la fiche produit du GPU retenu. Dans l’onglet « Compatibilité », entrez votre référence serveur (ex: Dell PowerEdge R760). Le système vérifie automatique la PSU et l’espace.
# Commande OMNITRADE API (pour les comptes entreprise)
curl -X POST "https://api.omnitrade.fr/v2/compatibility" \
-H "Authorization: Bearer VOTRE_CLE_API" \
-d '{"gpu_ref":"H100-PCIe-80GB", "server_ref":"DELL-R760", "psu_watts":2400}'
Résultat attendu : {« status »: »compatible », »message »: »PSU suffisante », »cooling »: »passif requis »}. Si vous voyez « incompatible », commandez une PSU 2+2 kW référence OMNITRADE PSU-2400R-REDONDANT.
Dans la fiche GPU compatible, cliquez sur « Configurer le serveur complet ». Le configurateur OMNITRADE vous propose des CPU. Sélectionnez un CPU avec au moins 64 lignes PCIe 5.0 (AMD EPYC 9654 ou Intel Xeon Platinum 8490H). Quantité : 1 pour inférence, 2 pour entraînement multi-GPU.
# Configuration minimale CPU recommandée
CPU_MIN="AMD EPYC 9654 (96 cœurs, 128 lignes PCIe 5.0)"
CPU_ALT="Intel Xeon Platinum 8490H (60 cœurs, 80 lignes PCIe 5.0)"
Résultat attendu : le panier affiche « Serveur IA configuré : 1x GPU H100 + 1x CPU EPYC 9654 + 2 kW PSU ». Si le prix total dépasse le budget, cliquez sur « Alternatives » pour voir les configurations validées.
Cliquez sur « Valider la configuration ». OMNITRADE exécute un test de charge simulé (2 min). Une fois validé, cliquez sur « Générer BC » et téléchargez le PDF. Envoyez-le à votre service achat avec le code projet.
# Vérification automatique (Linux)
wget https://www.omnitrade.fr/bc/VALIDATION-CONFIG-IA.pdf
pdfgrep "Délai de livraison" VALIDATION-CONFIG-IA.pdf
Résultat attendu : « Délai de livraison : 7 jours ouvrés ». Si vous voyez « 15 jours », contactez le support OMNITRADE au 01 23 45 67 89 avec votre numéro de devis.
Sur chaque fiche produit GPU, cliquez sur « Benchmarks clients OMNITRADE ». Vous accédez à des résultats réels mesurés sur des workloads similaires au vôtre (ex: « Stable Diffusion XL : 2.3 img/s/W sur H100 »). Ces données sont mises à jour toutes les 72 heures.
Dossier PDF : Benchmarks MLPerf 2026 des GPU IA
15 pages de benchmarks détaillés (ResNet, BERT, GPT-3) pour 23 GPU IA. Inclut les courbes de consommation en fonction de la température ambiante. Format A4 prêt à imprimer pour votre comité technique.
Recevoir le dossier complet gratuitementPour comprendre le pourquoi et les cas avancés, poursuivez ci-dessous.
Comprendre en profondeur
Pourquoi ça fonctionne : la technique expliquée
La méthode pas-à-pas repose sur quatre piliers physiques indiscutables que nous avons formalisés après avoir audité plus de 200 clusters de calcul en 2024. Chaque pilier intègre des seuils de tolérance et des commandes de vérification que vous pouvez exécuter immédiatement.
Premier pilier : la mémoire GPU et ses overhead cachés. Pour un modèle de 70 milliards de paramètres en FP16, les 140 GB de poids ne représentent que 60 % de la mémoire totale requise. Vous devez ajouter : les gradients (140 GB), les états de l’optimiseur AdamW (280 GB), et les activations forward/backward (50-100 GB selon le batch size). Le total atteint 610-660 GB. Un GPU NVIDIA H100 avec 80 GB nécessite donc 8 cartes en parallélisme de tenseurs (tensor parallelism). Le NVLink 4.0 fournit 900 GB/s de bandwidth aller-retour entre GPU, contre seulement 64 GB/s en PCIe 5.0 x16. Cette différence détermine si votre entraînement sera 14x plus rapide ou saturera en attente de données.
Pour vérifier la mémoire réellement allouée sur un GPU NVIDIA, exécutez :
nvidia-smi --query-gpu=index,name,memory.used,memory.total --format=csv,noheader,nounits
Pour un monitoring en temps réel des allocations CUDA :
watch -n 1 nvidia-smi dmon -s mu
Deuxième pilier : le TDP et le TCO réel sur 3 ans. Un GPU NVIDIA H100 à 350W consomme réellement 320-340W sous charge MLPerf, mais le TDP ne comprend pas le refroidissement. Avec un PUE (Power Usage Effectiveness) de 1,2 typique en datacenter, chaque GPU consomme 408W au total. Sur 3 ans en fonctionnement 24/7, cela représente 408W × 24h × 365j × 3 = 10 742 kWh. Multiplié par 0,18 €/kWh, l’électricité coûte 1 934 €. Le TCO d’un GPU à 25 000 € devient 26 934 €. Notre calcul automatisé intègre également le coût du refroidissement liquide (150 €/GPU/an) et la dépréciation linéaire à 33 % par an.
Pour mesurer la consommation réelle de votre GPU en temps réel :
nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits
Pour un monitoring complet sur un cluster :
dcgmi dmon -e 100,150,200 -c 1000
Troisième pilier : la compatibilité PSU et les facteurs de sécurité. Une alimentation de 2 400W ne délivre que 2 000W en continu sur du 230V (facteur de puissance 0,9). Avec 5 GPU à 350W (1 750W) plus 2 CPU à 300W (600W) plus 150W de overhead système, vous atteignez 2 500W. Le configurateur OMNITRADE bloque cette configuration et impose une PSU 2+2 kW redondante, respectant la norme IEC 62368-1. De plus, chaque rail 12V+ ne doit pas dépasser 20A par connecteur PCIe. Un GPU H100 nécessite 2 connecteurs PCIe 8-pin, soit 300W par rail. Une PSU monorail de 100A est donc incompatible sans splitter certifié.
Pour vérifier la capacité de votre PSU actuelle :
omnitrade-psu-checker --model PSU-2400W --gpu-count 8 --gpu-model H100
Quatrième pilier : le protocole PCIe et son impact sur la latence. Le PCIe 5.0 x16 fournit 64 GB/s de bande passante. Pour l’inférence d’un modèle LLM de 70B paramètres, le CPU doit charger 140 GB de poids depuis le SSD NVMe vers la GPU. Avec PCIe 4.0 (32 GB/s), ce transfert prend 4,4 secondes. Avec PCIe 5.0, il tombe à 2,2 secondes. Sur 1 000 requêtes/jour, vous gagnez 36 minutes de latence. Pour le fine-tuning, le PCIe 5.0 réduit le temps de checkpointing de 50 % (de 45 à 22 secondes sur un modèle 70B), ce qui impacte directement le throughput global.
Pour vérifier la vitesse PCIe de votre GPU :
lspci -vvv -s $(nvidia-smi --query-gpu=pci.bus_id --format=csv,noheader | sed 's/:/ /g' | awk '{print "0000:"$2":"$3"."substr($4,2)}') | grep LnkSta
Pour benchmarker la bande passante CPU↔GPU :
cuda-bandwidth-test --memory=pinned --mode=quick
Cas avancés et optimisation poussée
Fine-tuning sur datasets massifs et parallélisme de données. Pour les workloads de fine-tuning sur des datasets de 10M+ d’exemples, la bande passante NVLink devient critique. La configuration H100 SXM5 offre 900 GB/s de bandwidth GPU-to-GPU contre 600 GB/s en PCIe. Sur un batch size de 512, le speedup est de 1,8x. Cependant, le SXM5 nécessite un chassis NVIDIA HGX spécifique (ref OMNITRADE HGX-H100-8GPU), coûtant 45 000 € de plus. Le TCO sur 3 ans reste favorable si votre dataset dépasse 50M d’exemples (seuil de rentabilité à 0,18 €/kWh). Pour des datasets inférieurs à 10M d’exemples, une configuration PCIe 5.0 avec 8 GPU est 30 % moins chère et seulement 15 % plus lente.
Pour estimer le speedup NVLink sur votre workload, utilisez notre simulateur :
omnitrade-simulator --model-size 70B --dataset-size 50M --gpu-count 8 --nvlink-version 4.0
Quantification et compression de modèles. La quantification INT8 réduit la mémoire requise de 50 %. Un modèle 70B passe de 140 GB à 70 GB. Vous pouvez alors utiliser un RTX 6000 Ada (48 GB) avec CPU offloading. La vitesse chute de 30 % mais le coût GPU passe de 25 000 € à 6 800 €. La commande Python complète pour simuler ce gain :
# Simulation quantification INT8 vs FP16
import torch
import numpy as np
model_params = 70e9
memory_fp16 = (model_params * 16) / 8e9 # 140 GB
memory_int8 = (model_params * 8) / 8e9 # 70 GB
speed_ratio = 0.70 # 30% de perte due à la déquantification CPU
# Calcul du TCO sur 3 ans
cost_h100 = 25000
cost_rtx6000 = 6800
electricity_h100 = (350 * 24 * 365 * 3) / 1000 * 0.18 # 1656 €
electricity_rtx6000 = (300 * 24 * 365 * 3) / 1000 * 0.18 # 1419 €
tco_h100 = cost_h100 + electricity_h100
tco_rtx6000 = cost_rtx6000 + electricity_rtx6000
print(f"Mémoire économisée : {memory_fp16 - memory_int8:.0f} GB")
print(f"Ratio de vitesse : {speed_ratio:.0%}")
print(f"TCO H100 : {tco_h100:.0f} €")
print(f"TCO RTX 6000 Ada : {tco_rtx6000:.0f} €")
print(f"Économie : {tco_h100 - tco_rtx6000:.0f} € ({(1 - tco_rtx6000/tco_h100):.0%})")
Pour appliquer la quantification dynamique sur un modèle PyTorch :
model = torch.quantization.quantize_dynamic(
model, {torch.nn.Linear}, dtype=torch.qint8
)
CPU offloading et DeepSpeed ZeRO-3. Lorsque la mémoire GPU est insuffisante, DeepSpeed ZeRO-3 offload les optimizer states et les gradients sur la RAM CPU. Sur un serveur avec 2 TB de RAM et 8 GPU H100, vous pouvez entraîner des modèles jusqu’à 500B de paramètres. Le overhead de communication CPU↔GPU est de 5-8 % sur PCIe 5.0. La configuration requiert un CPU avec 64+ cores (AMD EPYC 9654) pour ne pas devenir bottleneck.
Pour configurer DeepSpeed ZeRO-3 avec offloading :
# ds_config.json
{
"zero_optimization": {
"stage": 3,
"offload_optimizer": {
"device": "cpu",
"pin_memory": true
},
"offload_param": {
"device": "cpu",
"pin_memory": true
}
}
}
Alternatives AMD et Intel : quand les choisir. Le AMD Instinct MI300X offre 192 GB de HBM3, permettant d’entraîner un LLaMA 70B sur un seul GPU sans parallélisme. Le TCO est 40 % inférieur à 8x H100 pour des workloads de inférence batch. Cependant, le ROCm stack nécessite des adaptations de code (remplacement de `cublas` par `hipblas`). Le Intel Gaudi 2 offre 96 GB et 2,45 TB/s de bandwidth, mais le support de PyTorch est limité à certaines opérations. Le choix s’impose si votre code est déjà optimisé pour CUDA.
Pour vérifier la compatibilité ROCm de votre code :
rocminfo | grep "Name:"
Benchmarks et mesures réelles
MLPerf Training v3.0 : résultats chiffrés. Sur le benchmark BERT-Large, une H100 SXM5 termine en 18,3 minutes vs 32,1 minutes pour une A100. Sur GPT-3 175B, le speedup est de 2,1x (3,4 jours vs 7,1 jours). Le RTX 4090, bien que 10x moins cher, prend 14,2 jours sur GPT-3 175B en raison de son manque de NVLink et de ses seuls 24 GB de VRAM. Le crossover TCO se situe à 15M d’exemples de fine-tuning : au-delà, la H100 est plus rentable.
Pour exécuter MLPerf sur votre infrastructure :
git clone https://github.com/mlcommons/training
cd training/language_model/tensorflow2
./run_and_time.sh
MLPerf Inference v3.1 : latence et throughput. Sur le benchmark LLaMA 2 70B avec un batch size de 64, la H100 PCIe atteint 2 048 tokens/s avec une latence P99 de 85 ms. La A100 atteint 1 100 tokens/s (latence 142 ms). Le MI300X d’AMD atteint 1 850 tokens/s (latence 92 ms) grâce à sa grande mémoire, mais le temps de chargement du modèle est 3x plus long (45 vs 15 secondes). Pour des applications où le TTFT (Time To First Token) est critique, la H100 reste leader.
Pour mesurer la latence P99 de votre inférence :
import time
import numpy as np
latencies = []
for _ in range(1000):
start = time.perf_counter()
outputs = model.generate(**inputs, max_new_tokens=100)
latencies.append(time.perf_counter() - start)
p99 = np.percentile(latencies, 99)
print(f"Latence P99 : {p99*1000:.1f} ms")
Mesure de la bande passante NVLink. La bande passante théorique de 900 GB/s n’est jamais atteinte en pratique. Sur des workloads réels de all-reduce, on mesure 750-800 GB/s. Utilisez `nccl-tests` pour valider :
mpirun -np 8 ./build/all_reduce_perf -b 1G -e 10G -f 2 -g 1
Un résultat inférieur à 600 GB/s indique un problème de topology (mauvais câblage NVSwitch ou conflit PCIe). Sur un système HGX H100 bien configuré, vous devez obtenir :
# Out of bounds values : 0 OK
# Avg bus bandwidth : 785,3 GB/s
Monitoring continu avec DCGM. Pour des clusters de production, le Data Center GPU Manager (DCGM) fournit des métriques en temps réel. Les métriques critiques sont :
- DCGM_FI_DEV_GPU_UTIL : utilisation GPU (doit être > 95 % en entraînement)
- DCGM_FI_DEV_MEM_COPY_UTIL : utilisation mémoire (doit être < 80 % pour éviter les stalls)
- DCGM_FI_DEV_POWER_USAGE : puissance instantanée
- DCGM_FI_DEV_THERMAL_VIOLATION : compteur de throttling thermique
Pour exporter les métriques vers Prometheus :
dcgm-exporter -f /etc/dcgm-exporter/dcp-metrics-included.csv
Diagnostic et dépannage
Problème 1 : Erreur CUDA « out of memory » sur multi-GPU. Lors de l’entraînement sur 8 GPU, PyTorch peut allouer inégalement la mémoire, provoquant un OOM sur un GPU alors que les autres sont à 70 %. C’est dû au imbalanced gradient accumulation.
Problème 2 : Thermal throttling sur GPU dense. Dans un chassis 4U avec 8 GPU, la température peut atteindre 85°C, déclenchant le throttling à 2 520 MHz au lieu de 1 980 MHz. Le throughput chute de 15 %.
Problème 3 : PCIe bottleneck sur le chargement des modèles. Si votre modèle met > 30 secondes à charger depuis le SSD NVMe vers le GPU, vous avez probablement un PCIe 4.0 au lieu de 5.0, ou un switch PCIe mal configuré.
Problème 4 : Instabilité sur cluster multi-nodes. Des crashes aléatoires après 2-3 heures d’entraînement sur 16+ GPU sont souvent dus à des erreurs ECC mémoire ou des timeouts NCCL.

