Archives de catégorie : Informatique

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.

Edit Ubuntu password on Windows10

You installed Ubuntu on your Windows 10 through App Store ? Great ! But if you have a good memory, you know you type your user password. This one is needed for every single « sudo » instruction. Do you want to change this password without knowing the old one ? It’s very easy. No need to follow all the (very long) tutorial on the net with cryptic Windows command. Just go to this folder :

C:\Users\<yourusername>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\etc

Edit file « shadow » and find the line with your username. Line is like this :

mylogin:$1$D5z55fgf$SDOizClhr1t8t4.:17687:0:99999:7:::

Password is encrypted and is the second field (separator is « : »).

Generate a new password with the following command :

openssl passwd -1 -salt ARandomString yourSuperPassword

Replace old password hash with the output. No need to reload anything, just type « sudo » with your user, you get prompted with a password, type « yourSuperPassword » and voilà !

 

Troubles installing CentOS on XenServer

You have a XenServer 6 or 7, and you have troubles installing CentOS (6 or 7) : the installer loads, but all you get is a black screen …

This is a known issue, and I’m wondering why it wasn’t fixed because it’s there for so long.
When having the boot menu, hit « tab » to show the option, and add the following :

modprobe.blacklist=bochs_drm rhgb

And then it worked !

https://bugs.xenserver.org/browse/XSO-353

https://discussions.citrix.com/topic/364226-centos-7-1503-installer-gives-blank-screen/

 

using a secured relay in Postfix

I have a server on a LAN that need to send emails. Of course, this server has access to the internet through NAT, but for emails it is a bit more difficult : nowadays, email servers are checking many things when receiving emails : reverse, ‘from’ field, etc. and you may not have access to this kind of tuning for the internet IP address used with your NAT. So I needed to configure a relayhost, with direct access to the internet, that would accept my incoming email and relay it through normal channels. But I don’t want this server to be an open relay, so I have to setup authentication between them.

Continuer la lecture de using a secured relay in Postfix

Problèmes de réseau avec VirtualBox sur Windows 10

Vous êtes passés sur Windows 10 ? Tant mieux pour vous. Mais si vous êtes un peu développeur / sysadmin, vous avez probablement VirtualBox qui tourne sur votre poste, et horrifié, vous vous rendez compte que vos VM n’ont plus de réseau depuis la mise à jour de l’OS. Si vous regardez les propriétés réseau, vous remarquez que le mode « Pont » (bridge) n’est plus utilisable (et c’est probablement ce mode que vous utilisiez).

La solution est simple : installer une version beta de VirtualBox. Oui c’est moche … Elle se trouve ici : https://www.virtualbox.org/wiki/Testbuilds

Redémarrez ensuite votre PC … Et le mode bridge est de nouveau dispo !

Dernière subtilité : apparemment le réseau ne marche plus si votre ordinateur est passé en mode veille … Le réseau est toujours là, mais les paquets ne passent plus. Un reboot corrige l’histoire.

En espérant que VirtualBox fasse rapidement les corrections nécéssaires !

MySQL SELECT query with LIKE case sensitive ?

Today at work I helped an intern with an interesting problem I would like to share.
he was doing this kind of query on a MySQL server :

SELECT description FROM service WHERE description LIKE '%cloud%';

It returned these lines :

cloud customer 1
cloud customer 2

but does not return these two lines he was expecting :

new Cloud infra
Cloud customer 2

LIKE should be case insensitive … What was wrong ?

Continuer la lecture de MySQL SELECT query with LIKE case sensitive ?

Using auditd to troubleshoot file reads

Today I will talk about auditd, a very powerfull tool to debug anything you need in a linux platform. In this very case, I had a problem with a mail server using all IO available. ‘iostat’ command told me it was reads ops that saturate it. A mail server has many process, so using « strace » is not helpful here. I choose to use auditd.

Continuer la lecture de Using auditd to troubleshoot file reads

Tests approfondis de G-WAN

Il y a quelques jours, j’ai découvert G-WAN, un nouveau serveur web « révolutionnaire » d’après son auteur. Ce dernier annonce des performances assez hallucinantes, même face à Apache, NginX ou Lighttpd qui sont les serveurs web les plus connus.

Ce qui m’a vraiment étonné, c’est la différence de performance annoncée :

G-WAN benchmarkJ’estime maîtriser assez bien Apache ou NginX, et je m’étonne évidemment de telles différences de performances. J’ai donc décidé d’enquêter ! Continuer la lecture de Tests approfondis de G-WAN

No space left with XFS

Today I hit a limit on XFS.
A task creating thousands of files was failing with this error :

No space left on device

Even if I still have plenty of disk space :

Filesystem               Size Used Avail Use% Mounted on
/dev/mapper/backup-logs  2.0T 1.6T 485G 77% /srv/logs

Filesystem used is XFS.

If you also have this bug, fix is very easy : you need to remount the filesystem with « inode64 » option. This is because XFS, by default, only use the first terabyte of data to store inodes. If you create many files, this limit is reached. By adding the mount option ‘inode64’, you give XFS permission to use the whole device to create inodes.

Only drawback is bugs with very old softwares, especially over NFS. This is really a rare situation.

 

 

Migrer de PHP 5.2 à PHP 5.3

PHP 5.2 n’est plus maintenu depuis janvier 2011, il devient donc tant de migrer sur la version 5.3 (surtout que dorénavant, la 5.4 est sortie en stable …).

Mais une migration doit toujours se préparer, afin qu’elle se passe le mieux possible sans grosse interruption de service. Voici donc une présentation des incompatibilités entre ces deux versions.

Continuer la lecture de Migrer de PHP 5.2 à PHP 5.3