Archives par mot-clé : ovh

Test des instances GPU OVH Cloud

Ces dernières semaines j’ai passé pas mal de temps (perso) sur tous ces nouveaux algorithmes de deep learning au sens large, aussi bien sur les solutions SaaS (Chat GPT est la plus connue) que les solutions dites « ouvertes », c’est à dire avec à la fois le moteur ET les fichiers d’apprentissages téléchargeables. J’ai donc compilé et installé StableDiffusion, le moteur de création d’images à base de texte, ou dans un champ très différent le fameux « faceswap », qui permet de mettre la tête de quelqu’un d’autre sur une vidéo. Même si j’ai du bon matos en local, je me suis dit que ce serait un bon test de voir ce que donne les fameuses cartes nvidia « Tesla V100 », qui sont des cartes pro et qui est le modèle emblématique à louer dans les instances de cloud dites « GPU ». Voilà donc ma review rapide sur la solution d’OVH !

Ce qui m’a décidé, ce sont les 200€ offerts sur les nouveaux projets. Chouette, voilà un test qui ne me coûtera rien (vous verrez plus loin dans cet article qu’il n’en sera rien).

Setup du projet chez OVH

Internet d’après MidJourney

Je lance la création de mon premier projet, ce qui met bien cinq minutes. Comme les instances GPU coûtent « cher », j’ai décidé d’amorcer mon projet sur la VM de base la plus simple, le modèle « b2-7 ». Ma première VM boote assez vite et me voilà déjà à faire les mises à jour Rocky Linux et à préparer mon environnement « tensorflow » avec tous les packages qui vont bien.

Voilà qui est fait ! comment ajouter du GPU sur une VM OVH maintenant ? Chez AWS ou GCP, il suffit d’attacher un GPU à une VM, cherchons maintenant chez OVH … Ah zut 1e tuile : il me faut convertir mon instance en type GPU, mais il me dit que ce type n’est pas dispo sur le datacenter choisi …

En lisant en détail, il me faut donc lancer une VM sur le DC GRA-9. Bim, message d’erreur encore : « ce datacenter n’est pas configuré ». Je fouille donc dans les menus et je trouve laborieusement comment activer de nouveaux DC, ce qui prend plusieurs minutes.

Reprovisionons donc une nouvelle instance sur le DC GRA-9, et recommençons le provisioning …. 1h plus tard, je suis prêt (oui bon ok je faisais autre chose en même temps). Convertissons la vm …. Bim message d’erreur : quota insuffisant. En effet, l’instance GPU la plus petite fait 8 cores et 45Go de RAM, soit au delà de la limite de 40Go de RAM initiale. Pour la dépasser, il me faut donc acheter un forfait quota (+10 VM), facturé 200€. Les petites lignes disent bien « non remboursable, à utiliser sous 12 mois ». C’est mort pour le test gratuit 🙁 Et franchement, le fait que la dénomination soit « + 10 VM » me fait vraiment douter que ce soit ça qu’il faille acheter (je veux pas plus de VM, je veux plus de RAM).

Carte bleu sortie, forfait payé, et il ne se passe rien. Ah ok, il faut là aussi attendre quelques minutes. Damned OVH ! niveau UI, affichez au moins un bandeau pour prévenir « paiement en cours » ou je sais pas moi !

Cette fois c’est bon, je lance la conversion de l’instance en type GPU. ça mouline pendant une bonne trentaine de minutes sans rien afficher d’un avancement ou autre. Après quelques centaines de F5, je vois bien ma nouvelle instance, et ça ping !

L’utilisation du GPU sur une instance OVH

Carte GPU (MidJourney)

Je me connecte, j’installe « nvidia-smi » qui est l’utilitaire classique pour lister les GPU … Ouf c’est bon, ma carte Tesla est là !

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02              Driver Version: 530.30.02    CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-PCIE-16GB            Off| 00000000:00:06.0 Off |                    0 |
| N/A   36C    P0               36W / 250W|      0MiB / 16384MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

Bon, comment tester et comparer maintenant ? Je me lance avec « deepfacelab » car c’est mon dernier projet perso. On lance juste la phase apprentissage (toute les étapes de découpe / etc ont été faites en local pour gagner du temps et pas payer dans le vide). Mais c’est la douche froide : c’est très très lent … Ah mais oui : le training se fait en mode CPU ! Le GPU n’est pas détecté correctement ! Il est tard, j’éteins la VM pour la journée de travail et la nuit qui vient afin de ne pas dépenser trop dans le vide.

Deux jours plus tard, je rallume ma VM, ce qui prend environ 15 minutes. Un nouvel essai l’après-midi me donne sensiblement le même délai. En clair, il faut pas être pressé si vous avez besoin d’une instance GPU … Après pas mal d’essais infructueux sur les drivers ou du kernel, je tombe enfin sur ce message qui informe qu’il faut downgrader Tensorflow … et ça fonctionne ! Ce n’était donc pas un souci de driver mais bien un souci applicatif python. Bon la question que vous vous posez tous : est-ce qu’une carte Tesla est vraiment plus rapide ? Voilà une comparaison des rythmes d’apprentissage obtenus :

Type d’apprentissageDurée d’un cycle
CPU19500 ms
GPU maison « GTX 1080 »1360ms
GPU Tesla V100240ms

Une bonne nouvelle : c’est cher mais c’est 5 fois plus rapide que mon GPU maison, qui commence certe à être un peu vieux mais qui n’est pas non plus si mauvais que ça.

Il est maintenant temps d’éteindre tout ça. Je devrais en avoir pour une dizaine d’euros de test d’après mes calculs. Et là, l’interface OVH m’indique … 60€ de consommation ! que s’est-il passé ? Argh, je me suis fait avoir comme un bleu. VOilà ce que donne les CGV d’OVH :

 La facturation d’une instance s’arrête quand l’instance est supprimée définitivement. Les états « arrêtée », « en pause », ou autre continuent à faire tourner le compteur de facturation tant que l’instance n’est pas supprimée. Dans les deux modes de facturation, l’unité de temps entamée est facturée.

Mais bien sûr ! J’ai été trop habitué à Nua.ge, où on ne paye que quand l’instance est allumée, à l’exception du stockage… Mais alors pourquoi diantre faut-il 15 minutes pour allumer une instance ?? Quoi qu’il en soit, ce test m’aura coûté 60€ pour environ 4h d’usage GPU effectif. Oui c’est cher 🙂 D’ailleurs, avec un minimum d’achat à 200€, on peut donc plutôt prendre ce chiffre si je n’utilise pas les ressources d’ici 12 mois…

Chez la concurrence, les instances GPU sont nettement moins cher 🙁 Là j’ai vraiment voulu tester le Made In France, mais un tarif x2 me parait prohibitif.

Plate-formeTarif horaire
GCP$0,74
AWS$0,918
OVH$1,99*
ScaleWay1,221€ (Tesla P100)
0,98€ sur RTX 3070
* conversion EUR/USD avril 2023

Conclusion

Avec ce test de GPU, c’était la 1e fois que j’utilisais le cloud public d’OVH depuis plus de 2 ans, lors des études de concurrence pour Nua.ge ; je suis très déçu de la progression du produit, par rapport aux moyens d’OVH. L’interface est aussi compliquée qu’AWS, on ne comprends pas vraiment ce qu’on paye et quand, bref l’expérience utilisateur a été plus frustrante qu’autre chose. Il y a clairement un boulevard pour qui proposera un produit simple d’usage.