Louer sa GPU sur vast.ai quand elle ne sert pas ?¶
Réponse : non, pas dans notre configuration. Analyse faite le 2026-10-22, pour la RTX 4070 Ti 12 Go de vm-compute-01. L'idée est séduisante — la carte est inactive une bonne partie de la journée, pourquoi ne pas la faire travailler pour d'autres pendant ce temps ? L'idée tombe sur trois points, du plus grave au moins grave. La conclusion change si l'un d'eux change : c'est précisé à la fin.
1. Le revenu ne couvre presque pas l'électricité¶
Prix relevés le 2026-10-22 par l'API publique de vast.ai (offres à la demande, 1 GPU) :
| Carte | Offres listées | Prix demandé, minimum | Prix demandé, médiane |
|---|---|---|---|
| RTX 4070 Ti | 21 | 0,107 $/h | 0,173 $/h |
| RTX 4070 | 20 | 0,080 $/h | 0,134 $/h |
| RTX 3080 | 55 | 0,067 $/h | 0,153 $/h |
Ce sont des prix demandés par les hébergeurs, pas des prix encaissés : une offre listée est par définition une offre que personne ne loue à ce moment-là.
Le calcul, avec des hypothèses posées explicitement :
- Consommation : une carte louée tourne à pleine charge, environ 250 à 300 W de plus au mur. À 0,30 €/kWh (hypothèse, tarif résidentiel belge), ≈ 0,08 €/h.
- Commission de la plateforme, prélevée sur ce que touche l'hébergeur.
- Taux d'occupation : une machine qui débute n'a aucun historique de fiabilité, et les locataires trient sur ce critère. 20 à 40 % est réaliste au départ, et le marché des cartes grand public de 12 Go est saturé.
Ordre de grandeur : 730 h × 30 % d'occupation × (≈ 0,15 € − 0,08 € d'électricité − commission) ≈ 0 à 20 € par mois, avant impôt — c'est un revenu à déclarer. Il peut être négatif si l'occupation tombe ou si le prix d'équilibre baisse.
2. Des conteneurs d'inconnus sur l'hôte principal¶
C'est le point qui tranche, indépendamment de l'argent.
- vm-compute-01 n'est pas une machine isolée : c'est l'hôte Docker principal du parc (environ 85 conteneurs), avec des montages réseau vers le stockage et un accès au réseau local et au réseau privé. Héberger pour vast.ai, c'est y faire tourner le code de n'importe quel locataire, avec un accès direct à la carte graphique. Une évasion de conteneur ou une faille du pilote GPU donne alors un pied dans tout le parc.
- vast.ai exige des ports joignables depuis Internet vers la machine hôte. Notre principe est l'inverse : un seul point d'entrée exposé, le frontal du NAS (voir Chaîne reverse proxy). Ouvrir des ports vers une machine interne casse ce principe.
- Le faire proprement demande un réseau isolé (VLAN dédié, pare-feu entre ce réseau et le reste). Le routeur actuel ne le permet pas proprement.
3. « Quand elle ne sert pas » ne fonctionne pas comme on l'imagine¶
- Pendant une location, la carte appartient au locataire. Une location à la demande ne s'interrompt pas avant sa date de fin : impossible de la reprendre parce qu'on en a besoin maintenant. Retirer la machine en cours de location fait baisser sa note de fiabilité, donc ses locations futures.
- Le logiciel hébergeur reconfigure Docker et le runtime NVIDIA, et suppose en pratique une machine dédiée. Chez nous, la même carte sert à l'inférence locale, à la transcription, à la reconnaissance d'images et au traitement de documents, avec un mécanisme de réservation qui leur répartit la mémoire vidéo. Les deux systèmes se disputeraient la carte.
Ce qui ferait changer la réponse¶
| Si… | Alors |
|---|---|
| la carte est remplacée par une plus grosse | la revendre d'occasion rapporte plus, et tout de suite, que des années de location |
| on dispose d'une machine dédiée, sur un réseau isolé | l'hébergement devient défendable ; mesurer d'abord la consommation réelle avec une prise à compteur |
| le prix médian encaissé dépasse nettement le coût électrique | refaire le calcul de la section 1 avec les prix du moment |
Comment refaire la mesure¶
Les prix se lisent sans compte, par l'API publique de recherche d'offres :
curl -s -G "https://console.vast.ai/api/v0/bundles/" \
--data-urlencode 'q={"gpu_name":{"eq":"RTX 4070 Ti"},"num_gpus":{"eq":1},"type":"on-demand","limit":500}' \
| python3 -c "import json,sys,statistics as s; p=sorted(o['dph_base'] for o in json.load(sys.stdin)['offers']); print(len(p), p[0], s.median(p))"
Le temps d'inactivité réel de la carte se lit dans l'historique de son utilisation (taux d'occupation GPU sur 30 jours) : c'est lui, et non l'impression qu'elle « ne sert pas souvent », qui borne le revenu possible.
Dernière vérification de cette page : 2026-10-22