Session du 02 décembre 2024 à 20h00
Veille & Discussions
Programmation GPU @ morpheus5828
Hello, je vous propose de parler de programmation gpu avec la lib python PyTorch.
Cette présentation ne sera pas centré sur l'IA (pour une fois XD !) nous verrons un peu les performances et surtout on comparera les temps d'exécution théorique et ce que nous gagnons réellement.
C'est un programmation assez chouette et qui ne nécessite pas d'être un seigneur de guerre python.
00:00:00 :Bonsoir à vous tous et à toutes, merci d'être venus ce soir pour cette présentation sur la programmation GPU.J'ai fait une courte vidéo par rapport aux autres parce que là c'était vraiment pour vous parler un petit peu de comment on fait aujourd'hui pour lancer du code sur GPU au lieu de le faire sur CPU.
00:00:24 :Donc aujourd'hui on va faire un petit peu d'histoire, on va savoir pourquoi on fait ça déjà, comment on s'en fait.Après on va voir un petit peu les différences qu'il y a entre notre librairie Python qui est assez connue, qui est NumPy, qui permet en fait de gérer tout ce qui est de l'arithmétique,
00:01:20 :C'est un composant d'ordinateur qui est branché sur la carte mère, qui permet l'affichage des images sur l'écran, tout simplement, d'accord ?C'est en fait l'unité qui va faire le traitement graphique. Donc en fait, la plupart des ordinateurs ont déjà un GPU qui est intégré au niveau du processeur, d'accord ?
00:01:37 :Et parfois, pour les ordinateurs qui sont un peu plus puissants, style des ordinateurs gaming ou des ordinateurs pour faire des sur data center ou quoi,ils ont des GPU qui sont, on va dire, à l'extérieur du CPU, d'accord ? Qui sont branchés directement sur la carte mère.
00:01:56 :Donc ça permet de faire quoi ? Ça permet d'accélérer un petit peu les rendus 3D.Ça, c'était l'objectif dans les années 2007, en fait. On commençait à faire de la 3D, à vraiment modéliser l'environnement sur ordinateur.
00:02:08 :Et le problème, c'est qu'on gère des images, on gère des données qui sont assez grandes, d'accord ?Ça peut aller jusqu'à des mèches. Donc c'est des structures géométriques qui ont des millions, voire des milliards de paramètres, d'accord, au niveau de la géométrie.
00:02:23 :Donc on a des matrices qui sont assez immenses et on a besoin, en fait, de les coder.Donc, par exemple, si je fais une modélisation 3D avec Blender ou que j'aimerais faire de la rotation d'une figure ou quoi,ça demande quelque chose, une puissance assez importante au niveau de la GPU et de la RAM, d'accord ? Et pas tous les ordinateurs peuvent le faire.
00:02:44 :On a aussi quelque chose, c'est par rapport aux encodages des vidéos. Vu que les vidéos et les images, ça se rapprochent.Donc ça, je l'ai rajouté. Et ça permet d'avoir une accélération au niveau de l'hardware.
00:03:03 :des librairies graphiques comme OpenGL, mais on faisait de manière séquentielle.Voilà, la programmation de cartes graphiques, c'était quelque chose d'assez difficile parce qu'en fait, c'était encore un petit peu instableparce que c'était un petit peu tout nouveau, d'accord ? On était vraiment au début du fait de rajouter cette unité en dehors du CPU et tout.
00:03:23 :Et dans les années 2007, il y a NVIDIA, qui est maintenant la top 1 des entreprises internationales.Elle a inventé CUDA, en fait, c'est une plateforme qui permet de faire du parallélisme, donc qui permet au niveau de lancer les systèmes de thread, etc.
00:03:39 :au sein d'une même unité. Voilà, ça, ça a vraiment explosé puisqu'on a pu exploiter la puissance des GPU à sa pleine puissance.Aujourd'hui, on tourne sur des GPU qui sont, alors je crois que les derniers, c'est tout ce qui est 4090 ou même beaucoup plus.
00:03:57 :Bon, c'est des monstres au niveau du composant hardware.Donc là, en fait, cette présentation est un petit peu à la limite entre le hardware et le software.
00:04:08 :Parce qu'en tant que programmeur, lorsque vous avez des logiciels à faire tourner, il faut que vous vous disiez, ok, quel est le logiciel ?Qu'est-ce que j'ai vraiment besoin, en fait ? Voilà, ça, c'est aussi le cœur de cette vidéo.
00:04:20 :Quand vous faites, par exemple, de l'IA, vous allez traiter des grandes données, d'accord ?Sous de très grandes dimensions, ok ? On en reverra plus tard.
00:04:29 :Quand vous faites du graphisme, c'est pareil. Quand vous faites de la vidéo sur des logiciels de montage, ça revient même.Par contre, quand vous faites du Word, bon, il n'y a pas besoin d'avoir une GPU externe proprement dite, d'accord ?
00:04:42 :Alors, c'est un haut GPU.Donc, ça, c'était pour faire un petit peu d'histoire.Nous, ce qui nous intéresse, c'est comment on s'en sert au niveau du code.
00:04:50 :Donc là, j'ai parlé qu'NVIDIA avait créé la plateforme CUDA.Et nous, en fait, vu qu'on fait du Python ou Java ou autre, on va servir des librairies, d'accord ?
00:05:00 :Donc, une qui est assez connue, qui s'appelle PyTorch, qui est une librairie qui permet de faire des calculs,pas que sur des réseaux de neurones, non ?
00:05:10 :C'est aussi une librairie qui fait vraiment de l'accélération au niveau du code.On peut notamment, moi, la première fois que j'ai vu PyTorch, c'était sur une stageoù, en fait, on parlait d'optimisation du code au niveau de la puissance des calculs, etc.
00:05:25 :Et il n'y avait pas du tout d'IA, c'était des calculs d'optimisation, c'était des maths purs.Et bien, c'était tout en PyTorch.Alors, qu'est-ce que ça change concrètement ?
00:05:34 :Ça change qu'en fait, ça se ressemble un petit peu pareil de ce qu'on connaît au niveau de la programmation, d'accord ?C'est juste une simple librairie que vous importez.
00:05:43 :Donc, c'est un import Torch, etc.Et en fait, à partir de Torch, on a une petite commande qui nous permet de sélectionner un device.Donc, un device, ça va être un objet CUDA sur lequel on va pouvoir faire tourner notre calcul.
00:05:57 :Donc là, vous avez une commande.Donc, j'ai mis un Torch.Device, CUDA0 si c'est valide.Sinon, je vais tourner sur CPU, d'accord ?Donc, CUDA0, ça peut être la première GPU.
00:06:07 :Après, si vous avez des sous, si vous avez plusieurs GPU, ça peut aller jusqu'à 2.0.Donc, ça c'est la commande pour pouvoir préparer votre pad.
00:06:23 :Et ensuite, vous n'avez qu'à sélectionner le device sur lequel vous voulez faire tourner.Alors maintenant, on va comparer un petit peu ce qu'on sait faire nous, la plupart des gens.
00:06:32 :Notamment, le PyTorch VSF VS NumPy.Donc NumPy, comme je disais, c'est une librairie qui est pour la plupart de ceux qui connaissent.C'est une librairie pour faire du calcul matriciel, des listes, etc.
00:06:45 :C'est vraiment sympa pour gérer un petit peu,notamment quand on veut utiliser par exemple un interrange,donc un tableau contenant 15 éléments de 0 à 14, d'accord ?
00:06:56 :Donc là, j'ai mis quelques commandes sous l'image du gauche qui vous montre un peu,bah voilà, comment on se dit un petit peu à ça, etc.
00:07:04 :Et en fait, ce qui peut se passer, c'est que, ce que vous constatez,c'est que toutes les fonctions qu'il y a en NumPy,elles sont aussi disponibles en PyTorch.
00:07:11 :Et ça, c'est sympa.C'est-à-dire qu'on n'a pas besoin de s'adapter à un nouvel environnement.Voilà, c'est assez transductif.Donc tout ce que vous savez faire en NumPy,le Reshape, le View, les Random, etc.
00:07:23 :Bon, j'en passe.Vous pouvez le faire en PyTorch, d'accord ?Vous avez juste à remplacer NP, qui est l'acronyme de NumPy, par Torch.D'accord ? Ça se fera aussi facilement.
00:07:32 :Et vous pouvez, en fait, sélectionner par la suite le device sur lequel vous voulez faire votre calcul.D'accord ?Donc là, j'ai fait un petit exemple comment s'en servir.
00:07:42 :Donc là, par exemple, j'ai initialisé un tensor de taille de 2,de taille de 2 avec des valeurs qui suivent une loi normale.Et ensuite, je sélectionne mon QDA, mon Torch.Device.QDA0.
00:07:55 :Et j'envoie mon tensor.D'accord ?Alors, tensor, c'est un peu...Matrice tensor, c'est...Ces mots mathématiques font un petit peu peur,mais retenez qu'un tensor, c'est une matrice mais avec plus de dimensions.
00:08:07 :D'accord ?Donc en fait, là, vous avez vraiment le côté un peu mathématique.Alors, c'est un peu bourrin.Ça peut te faire un petit peu peur au début.
00:08:16 :D'accord ?Mais en fait, ce qui est assez puissant,c'est le fait de faire cette passation entre Python, PyTorch et QDA.Vous initialisez votre objet Python.
00:08:26 :Vous l'envoyez vers...Vous configurez votre QDA.Device.Et vous faites un tensor.ToDevice pour envoyer votre matrice,votre tensor, à votre GPU.Et c'est tout.D'accord ?
00:08:38 :Et ensuite, tous les calculs qui se feront là-dessus,d'accord ?Ce sera par le biais de la GPU.Attention, parfois, quand vous allez...Par exemple, vous faites un modèle de réseau de neurones,vous le faites tourner sur GPU,quand vous faites des prédictions,vous pouvez vous rendre compte que, du coup, ça ne marche pas les prédictions.
00:08:58 :Vous prenez, par exemple, je ne sais pas, je vais prédire...Je prends une image au hasard.Je vais prédire qu'il y a une bouteille ou la...
00:09:06 :Je ne sais pas, un McDo sur l'image, tu vois ?Si je fais tout tourner sur GPU,et qu'ensuite, je prends une nouvelle photo, je fais ça,je lance ma photo avec mes prédictions,ça ne marche pas parce qu'en fait, les calculs,ils sont faits sur GPU.
00:09:18 :C'est-à-dire qu'il faudra aussi revenir,refaire la conversion vers CPU.D'accord ?C'est une petite géométrie à prendre à l'aiseparce que ce n'est pas très bien le début,mais ça permet vraiment de comprendre ce qui se passe vraiment.
00:09:35 :Donc là, vous avez...Quand vous faites ce genre de choses, voilà.Où est-ce qu'on se situe ?Est-ce qu'on se situe sur le CPU ou sur la GPU ?
00:09:42 :Voilà.Et donc, vous pouvez passer rapidement.Donc là, c'est point device que vous faites un ToDevice,et ensuite, vous pouvez revenir à ToCPU direct.Donc maintenant, pour continuer un petit peu par rapport aux comparaisons,parce que là, je vous ai dit que PyTorch,c'était un peu mieux que NumPy et tout,
00:10:00 :que les GPU, c'était un peu mieux que les CPU,mais là, c'était que des hypothèses.Et en fait, ce qui s'est passé, c'est que j'ai fait une petite expérienceoù en gros, j'ai pris des matrices, d'accord ?
00:10:11 :Donc de tailles variables.Au début, j'ai commencé à 100, après j'ai augmenté.Et j'ai fait un calcul matriciel, d'accord ?Un produit matriciel qui est assez gourmand en termes de ressourcesquand les données commencent à être assez importantes,quand on commence à avoir pas mal de lignes et de colonnes.
00:10:32 :Et j'ai comparé le temps d'exécution.Et en fait, voici le résultat.Donc vous avez trois expériences, d'accord ?Qui ont été effectuées sur des tailles de matrices allant de 0 à 1000.
00:10:44 :Avec NumPy.Avec PyTorch sur CPU.Et avec PyTorch sur GPU, d'accord ?Donc déjà, on va rester sur CPU, d'accord ?Donc on va regarder la courbe qui est orange et bleue.
00:10:59 :On peut voir que déjà, les courbes, elles sont assez...Elles se suivent au début de 0 à 400.Et après, c'est vrai que l'une monte de manière exponentielle, donc NumPy.
00:11:09 :Et PyTorch, on va dire, va déjà optimiserun bout de calcul, d'accord, par rapport à NumPy.Même en ayant le même device.Et ça, c'est assez sympa, parce que si vous faites des calculssur des projets qui ont de grandes ouvertures en entreprise,déjà, de savoir que de remplacer tout ce que vous avez par Torch,
00:11:30 :les fonctions qui ont été écrites avec NumPy,là, déjà, vous aurez un gain de temps qui peut être assez important sur des projets.Et par la fin, j'ai pris ma GPU que je possède,j'ai une RTX 3050 de chez Nvidia,et le beau bébé qui m'avait coûté cher pendant la pénurie cardéraphique.
00:11:49 :Et ensuite, du coup, j'ai envoyé tout le calcul,et on peut voir que le temps d'exécution,en fait, c'est moins d'une seconde.C'est moins d'une 1 centième de seconde.
00:12:00 :Et ça, c'est bluffant.C'est-à-dire que j'ai retenté le calcul plusieurs fois pour voir si c'était un bug ou quoi,et non, c'est vraiment là, le coup de la GPU,là, les deux montent de manière un peu exponentielle.
00:12:12 :Là, orange, elle met un petit peu de temps, et après, elle commence à monter.Alors, quand je dis exponentielle, d'accord,là, on est à 0,06 secondes.
00:12:19 :Je pèse un peu mémoire,mais quand on fait du hardware, on regarde vraiment ce petit détail-là.Là, on peut voir que c'est quelque chose d'assez flatteur,parce qu'on a un gain qui est important.
00:12:31 :Alors, pour la première courbe, de 0 à 200,on a la GPU qui a un pic à 0,04.Ça, je pense peut-être que c'est le fait d'envoyer toutes les données du CPU vers la GPU,qui peut peut-être prendre un petit peu de temps.
00:12:48 :J'avoue que je n'ai pas trop de réponses à vous donner sur l'interprétation de cette première valeur.De toute façon, ensuite, le principal, c'est de voir que c'est de 100 à 0.
00:12:59 :Donc voilà, ça, c'était un petit peu cette présentation.Et ensuite, en deep learning, qu'est-ce qu'il se passe ?Là, je vous ai parlé de matrices qui avaient une taille de taille 1000,mais en pratique, on n'a pas des matrices de taille 1000.
00:13:13 :On a des matrices beaucoup plus grandes.Donc rappelez-vous, sur les différentes vidéos,quand vous travaillez sur des LLM, des Large Language Models,ce sont des réseaux de neurones qui ont des milliards de neurones,mais qu'en entrée, on s'intéresse à la quantité de données.
00:13:33 :Et pourquoi on se dit, pourquoi le deep learning, on ferait tout sur GPU ?Là, on va calculer un petit peu les matrices en entrée pour voir un petit peu ce qu'il se passe.
00:13:40 :Donc là, j'ai créé un dataset qui s'appelle ImageNet,qui est assez connu dans le monde de l'IA.C'est une base de données qui contient 1 431 167 images pour le plus petit,répartoriées sur une centaine de classes.
00:14:00 :Enfin, je ne sais pas exactement,les classes en fait, ceux qui ne se confondent pas de l'IA,c'est les types de données qu'on a, des camions, des paysages, etc.
00:14:08 :D'images en 256 par 256 sur un canal 3, parce qu'elles sont en couleur.Donc si on fait un petit calcul de la Terre en entrée de notre matrice,on va prendre les 5 images et on va prendre le 256 soit 256 soit 3,on va les aplatir, donc ça va donner 196 608.
00:14:33 :Et ça, on va le refaire pour toutes les images.Donc on va avoir, du coup j'ai mis un petit calcul,196 608 colonnes par 1 431 167 lignes.
00:14:48 :Je vous laisse imaginer un peu la taille de la matrice.Donc là, on n'est pas du tout dans la matrice 1000 000,qui n'est pas vraiment toute joyeuse.
00:14:55 :Et là, on part à des data sets qui sont beaucoup plus énormes.Là, concrètement, on est obligé de faire sur GPU.Là, c'est une évidence.
00:15:05 :Alors, à savoir qu'il existe une unité qui est encore plus puissante que le GPU,qui a été développée par les chercheurs de Google qui s'appelle le TPU.
00:15:15 :D'accord, c'est plus l'acronyme en question.Mais de ce que je peux vous dire, c'est qu'en fait,un Google collab, vous pouvez sélectionner ce paramètre-là,pour pouvoir faire votre calcul d'IA, ou pas d'ailleurs.
00:15:28 :C'est un autre device qu'on peut traiter comme ça.Là, en fait, on peut encore optimiser ce truc-là,donc on peut aller encore plus fort que les GPU.
00:15:37 :Après, en pratique, je n'en ai pas présenté,parce que sur le papier, c'est dit que c'est plus vite.Après, en pratique, les GPU restent largement beaucoup plus rapides.
00:15:48 :Enfin, autant rapides.Donc après, je pense que ça peut dépendre.Peut-être que ça ne sera pas rapide au niveau du temps de traitement de calcul,mais peut-être sur la construction du modèle.
00:15:58 :Je vous dirai par la suite si jamais j'ai un retour là-dessus.Mais voilà, c'est à savoir qu'on peut faire encore plus, d'accord, si on veut.
00:16:05 :Après, de savoir faire un calcul sur plein de devices,bon, aujourd'hui, si vous voulez faire un gros truc,il faut savoir que c'est sur ça qu'on fait.
00:16:14 :Voilà, par exemple, les gros datacenters qui ont besoin de faire des calculs,par exemple, de mèches, d'accord, géométriques,ça se fait sur GPU, d'accord.Et là, pour le coup, le parallélisme, on est bien content qu'il y ait,parce que là, on a le multithreading qui se met en place,
00:16:29 :donc on a des gains de performance qui sont assez importants.Même si c'est long, on préfère que ça dure six mois que ça dure cinq années, par exemple.
00:16:38 :Bon voilà, ça c'était une petite présentation sur la programmation GPU.C'était assez court, c'était vraiment pour vous dire que, voilà,tout ce que vous faites en NumPy, vous pouvez complètement le passer en PyTorch.
00:16:55 :Donc voilà, si jamais vous faites des projets,si vous me faites un petit feedback sur si jamais vous faites des maths sur un projet à vouset que vous essayez de remplacer par PyTorch et que vous avez des retours,je serais vraiment très ravi qu'on puisse les partager.
00:17:14 :Donc voilà, maintenant, je fais passe aux questions.Donc si vous avez des questions, je serais ravi, comme d'habitude, d'y répondre.Donc voilà, j'ai fini.Eh bien, merci.
00:17:27 :Moi, personnellement, je n'ai pas de questions.C'était sympa.Non, pas de questions non plus.Et effectivement, c'était sympa comme d'habitude.Merci.Ah ben, ça me fait plaisir.
00:17:42 :Et là, d'où la différence.Sur ton image, là, que tu parlais, de un million quatre cent trente mille pixels, là, voilà.Ça, si tu fais, par exemple, si tu disais, en gros, si tu payes par PyTorch,ça mettrait combien de temps, à peu près ?
00:18:00 :Alors, en fait, là, je n'ai pas de temps exact sur le fait.Après, là, en fait, tu parles de cette figure-là.Si tu fais ce truc-là, la différence serait monumentale, quoi.
00:18:17 :La différence serait monumentale.Et là, en fait, la prédiction que je peux te faire, c'est déjà que la bleue et la orange.En fait, je n'aurais même pas le plot de l'image.
00:18:28 :Parce qu'en fait, pendant que je vais faire mon scape, la bleue et la orange vont prendre tellement de temps,que limite, il faudrait faire trois programmes différents.
00:18:35 :Puisque les trois ont été faits de manière séquentielle.Donc, j'ai fait vraiment le fort avec les trois à l'intérieur.Et ensuite, j'attendais au fur et à mesure que l'autre soit fini pour continuer.
00:18:45 :Si on fait vraiment trois programmes différents, sur GPU, ça va manger le calcul de PyTorch sur CPUavec le calcul de NumPy, sans problème.Sans problème.
00:18:57 :Donc après, comme je te disais, ça, je n'ai pas testé de le faire sur ma GPU.J'aurais pu.Mais c'est vrai que, pour un exemple simple, je ne me suis pas cassé la tête.
00:19:08 :Mais j'imagine que dans tous les cas...A l'heure d'aujourd'hui, quand on regarde la plupart des papiers et des programmes qui sont faits pour l'optimisation,l'optimisation est faite sur GPU.
00:19:23 :Ça, j'en suis sûr, il y en a un.Et c'est un autre truc que je peux vous dire.L'optimisation n'est pas faite sur CPU.Si on veut vraiment aller au petit truc...
00:19:33 :Si tu veux de la performance, il faut passer par GPU.Pas le choix.Si tu veux une bête de guerre, si tu veux vraiment une machine de combat, tu passes sur GPU.
00:19:41 :Après, au niveau des GPU, le choix...Moi, comme je disais, j'ai fait un test, parce que j'ai une RTX 3050.Il y en a qui sont une 3080 et une 4090.
00:19:50 :Comme je le dis, ça dépend vraiment de tes données.Si c'est pour faire du gaming, ça ne sert à rien.Moi, je ne reconnais pas.
00:19:56 :Mais si tu veux faire tourner...Moi, je vois les limites de ma carte graphique.Notamment quand je fais tourner un GAN avec les IA génératives de mes images de peinture.
00:20:07 :Ça me prend une journée entière pour faire 200 époques.200 itérations de rétropropagation du gradient, etc.Ça prend une journée entière.Sur la GPU, ça ne se lance même pas.
00:20:22 :Clairement, le script me dit que j'abandonne.Il y a mes hormices de partout.Ils ont carrément mis ça, parce que ça ne sert à rien.
00:20:31 :Pour faire tourner ces trucs-là, ce n'est pas possible.Après, tu peux faire de l'overclocking pour améliorer les fréquences, etc.Tu peux toujours faire.Mais après, vu le prix de la carte, je n'ai pas trop envie.
00:20:45 :C'est sûr que la GPU...Ce qu'on peut savoir, c'est que les CPUs sont moins chers que les GPUs.Moi, je prends par exemple le Ryzen 5.
00:20:54 :Ryzen 5 5800X va coûter entre 100 et 200 balles.Les cartes graphiques, vu qu'en plus, il y a eu les pénuries.Concrètement, pourquoi il y a eu les pénuries des cartes graphiques en 2021-2022 ?
00:21:10 :Par exemple, pour faire du bitcoin, pour faire du minage,ce sont des calculs qui sont tellement énormes à faire qu'on fait tourner sur GPU.C'est pour ça qu'il y a eu pas mal de pénuries.
00:21:22 :Des gens ont acheté 300 cartes graphiques et les mettent dans un liquide.Pour reproduire ça, parce que ça chauffe, ils mettent carrément dans un liquide adapté.
00:21:32 :Et ils font du minage.Ce sont des calculs qui ne servent à rien pour les crypto-monnaies.Certaines crypto-monnaies, c'est pour faire avancer les décimales de Pi ou quelque chose comme ça.
00:21:44 :Donc chacun peut importer un bout de code.Pour le bitcoin, je vais regarder cette crypto-monnaie pour miner ce truc-là.En fait, ce sont des calculs qui n'ont pas de sens.
00:21:55 :Ça prend beaucoup de ressources, beaucoup d'énergie.Ce que tu payes en retour, par contre, c'est que ça va s'épuiser beaucoup plus rapidement.Quand tu fais KQ sur GPU, certains ont fait que un jour, ta GPU, elle dira bye-bye.
00:22:12 :Je me répète un peu, mais ça dépend vraiment de ce que tu fais comme projet.Et vraiment, il faut essayer de s'adapter le plus quand tu commences à faire de la programmation de ce truc-là.
00:22:23 :À se dire, je fais tel projet, j'ai besoin de telle hardware.Souvent, les gens qui font du code ou du dev,ils n'ont pas forcément le retour de se dire, ok, on prend un ordi surpuissant gaming,et bam, je passe partout et je lance tout.
00:22:38 :Peut-être que ça ne va jamais te servir.Si tu fais des projets, que ce soit, par exemple, des projets en C,une base de générer, une base de donner en C,ça ne sert à rien d'avoir une machine de combat en termes de PC.
00:22:49 :Ça n'a pas de sens.Et là, c'est une adaptation aussi de pourquoi on utilise ce qu'on a comme ordinateur.Voilà.Ok. Il y avait Scrollwarden qui avait une question dans le chat, si tu veux.
00:23:05 :Ouais.Attends, je vais regarder.Alors, la question.J'ai du bruit autour de moi alors je n'aime pas le micro.Merci de l'orientation.Merci à toi d'être venu.
00:23:23 :Il y a une chose pour laquelle j'ai besoin.Je fais partie d'un projet sur lequel on entraîne une IA,et si on pouvait l'entraîner avec notre GPU,ce serait nettement plus rapide qu'avec notre CPU.
00:23:31 :En utilisant TensorFlow, l'entraînement se fait avec la méthode Phi,pour ceux qui connaissent,et je ne trouve pas la manie pour lui faire faire ça sur ma carte graphique plutôt que mon CPU.
00:23:40 :Si on passait par Partosh, ça tournerait automatiquement sur GPU.Alors, pour faire tourner ton code dans TensorFlow,pour ceux qui ne connaissent pas,c'est une librairie qui est développée par Google,qui est liée avec Keras,pour faire des réseaux de neurones de manière artificielle,mais un peu plus de haut niveau.
00:23:59 :C'est-à-dire qu'on va en montrer les détails.Ta question est assez sympa,parce que moi, quand j'ai commencé de faire de l'IA,j'étais sur TensorFlow,et de faire tourner sur GPU,c'était très chiant.
00:24:11 :Mais je l'ai trouvé, et j'ai une solution à te donner du coup.Il faut que tu installes QDA,QDNN,et TensorFlow sur un environnement mondial,et qu'ensuite,je vais te donner,parce que j'ai la commandesur mon GitHub,TensorFlow,pour faire tourner ton code sur ta GPU.
00:24:35 :Et non, ça ne se fait pas automatiquement sur Partosh,comme je te dis, il faut que tu sélectionnes le device.C'est obligé.Donc, si ça t'intéresse,IARessources, c'est un repo que j'ai mis un peu en open source,où je mets tous mes projets d'IA, de master, etc.,
00:24:48 :où en fait, j'ai des petits bouts de code pour faire ça.Alors, si je prends celui-là,je vais te donner la combine,s'il veut bien.
00:25:07 :Alors, voilà.Ouais, c'est celle-là.Donc, je te la copie.Hop.Je pose la commande magique pour faire tourner sur GPU.Après, il faut vérifier,il faut que tu fasses un print device, je crois.
00:25:34 :Oui, donc c'est un tf.config,tu fais device 0,mais device, en fait, ça va contenir une liste.Il faut vérifier que ta liste ne soit pas vide,parce que si elle est vide, c'est qu'il n'y a pas rien.
00:25:44 :Je t'envoie le lien de mon GitHub,si jamais ça t'intéresse.J'ai mis tous les codes,tous les réseaux,toutes les vidéos que j'ai faites sur YouTube,les CNN, les LSTM, les réseaux récurrents,les réseaux génératifs, etc.,
00:25:59 :et j'ai tout mis en open source.J'ai mini-codes.Soit ça vient de chez Kaggle,soit ça vient de chez moi, tout simplement,qui connaît ça.
00:26:09 :Donc, n'hésitez pas à aller voir,si jamais vous faites des petits trucs,vous gagnerez du temps sur vos projets.Tiens, je t'envoie tout ça.Est-ce que vous aurez d'autres questions,par hasard ?
00:26:25 :N'hésitez pas,ça me fait plaisir de vous résumer.Écoute, pour moi, c'est bon.Je te remercie.Super.Scrollwarden a crié encore.Fini le modèle à 400 neurones.
00:26:45 :Ah, ben là, tu vas pouvoir passerà un peu plus de neurones.Bienvenue dans le monde.Le plus gros que j'ai fait tournersur ma GPU,le plus gros que j'ai fait tourner,c'était14 millionsde neurones.
00:27:05 :Bon, par contre, là,j'ai dû mettre la clim dans ma chambre,parce que vraiment, là, l'ordi,c'est bien comme il faut.Il y a 50 silos, mais ça ne suffisait pas.
00:27:15 :Après, ça ne sert à rien d'avoir30 paramètres.On pourra en parler ultérieurement,dans d'autres vidéos ou en MP,mais ça ne sert à rien d'avoir autant de paramètrespour la plupart des projets.
Aucune occurrence trouvée pour « ».