{"id":1139,"date":"2021-09-15T16:38:16","date_gmt":"2021-09-15T14:38:16","guid":{"rendered":"https:\/\/loeilduse.fr\/?p=1139"},"modified":"2021-09-16T12:17:28","modified_gmt":"2021-09-16T10:17:28","slug":"optimiser-le-cout-dusage-des-gpus","status":"publish","type":"post","link":"https:\/\/loeilduse.fr\/?p=1139&lang=fr","title":{"rendered":"Optimiser le co\u00fbt d&#8217;usage des GPUs"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Les GPUs (Graphical Processing Unit) ont \u00e9t\u00e9 cr\u00e9\u00e9s dans les ann\u00e9es 70s pour acc\u00e9l\u00e9rer la cr\u00e9ation et la manipulation des images. Elles ont vite \u00e9t\u00e9 adopt\u00e9es par les constructeurs de console de jeux pour am\u00e9liorer la fluidit\u00e9 des graphismes. C\u2019est dans les ann\u00e9es 2000 qu\u2019a commenc\u00e9 l\u2019utilisation des GPU pour faire des calculs en dehors du domaine du graphisme. Aujourd\u2019hui l\u2019utilisation en vogue des GPUs concernent les domaines d\u2019IA (intelligence artificielle) et de ML (Machine Learning). Plus d\u2019historique sur le site de Wikip\u00e9dia : : <a href=\"https:\/\/en.wikipedia.org\/wiki\/Graphics_processing_unit\">Graphics processing unit &#8211; Wikipedia<\/a>.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">C\u2019est pour cela que dans les serveurs des datacenters on retrouve ces GPUs car les applications de type IA et ML n\u00e9cessitent de nombreux calculs qui s\u2019ex\u00e9cutent en parall\u00e8le, ce qu\u2019un processeur classique (CPU) aurait du mal \u00e0 faire de par sa fonction. En effet une CPU est l\u2019\u00e9l\u00e9ment central d\u2019un serveur qui est l\u00e0 pour ex\u00e9cuter plein de petites taches s\u00e9quentielles, tr\u00e8s rapide et \u00e0 faible latence, pour cela il peut compter sur une soixantaine de c\u0153urs par CPU (\u00e0 date de la r\u00e9daction de l\u2019article). Une GPU quant \u00e0 elle, est faite pour ex\u00e9cuter des milliers de taches en parall\u00e8le gr\u00e2ce \u00e0 ses milliers de c\u0153urs qui la compose.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">L\u2019inconv\u00e9nient d\u2019une GPU c\u2019est son co\u00fbt, cela peut atteindre des dizaines de milliers d\u2019euro, il faut donc s\u2019assurer qu\u2019elle soit bien utilis\u00e9e tout le temps. L\u2019id\u00e9al est de pouvoir la partager pour qu\u2019elle soit utilisable simultan\u00e9ment par plusieurs applications afin d&#8217;\u00eatre proche de consommer l&#8217;ensemble des ressources.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">C\u2019est le cr\u00e9do de Bitfusion solution rachet\u00e9e par VMware en 2019 et qui <\/span><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">maintenant <\/span><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">fait partie d\u2019un add-on \u00e0 vSphere. Les GPUs sont install\u00e9es sur les hyperviseurs et forment un pool de GPUs qui seront accessibles par les applications directement h\u00e9berg\u00e9es sur ces hyperviseurs ou via le r\u00e9seau IP si les applications sont h\u00e9berg\u00e9es sur d\u2019autres hyperviseurs, les applications peuvent m\u00eame \u00eatre h\u00e9berg\u00e9es sur des serveurs physiques ou \u00eatre \u00e0 base de container Kubernetes. L&#8217;usage est r\u00e9serv\u00e9 aux applications types Intelligence Artificielle ou Machine Learning utilisant les routines CUDA. CUDA a \u00e9t\u00e9 d\u00e9velopp\u00e9 par NVDIA pour permettre l&#8217;acc\u00e8s directe \u00e0 des GPUs pour des applications non graphiques.<br \/>\n<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Les applications peuvent consommer une GPU, plusieurs GPUs ou simplement un portion de GPU (en r\u00e9alit\u00e9 c&#8217;est la m\u00e9moire de la GPU qui est partag\u00e9e). Une fois la consommation termin\u00e9e, les applications lib\u00e8rent les ressources GPUs octroy\u00e9es qui retournent ensuite dans le pool \u00e0 la disposition de futures demandes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1142 aligncenter\" src=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/bitfusion-vsphere.png\" alt=\"\" width=\"624\" height=\"307\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/bitfusion-vsphere.png 624w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/bitfusion-vsphere-300x148.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">D\u2019un point de vue technique, Bitfusion n\u00e9cessite l\u2019installation de composants de part et d\u2019autre. Cot\u00e9 hyperviseurs qui poss\u00e8dent les GPUs, il faut d\u00e9ployer sur chacun une appliance virtuelle t\u00e9l\u00e9chargeable \u00e0 partir du site VMware. Pour les clients (VM, Bare Metal ou containers\/PODs Kubernetes) qui vont consommer les ressources GPUs, il faut installer un client Bitfusion, ce dernier permettra d&#8217;intercepter les appels CUDA fait par l&#8217;application pour les transf\u00e9rer \u00e0 l&#8217;appliances Bitfusion via le r\u00e9seau IP. C&#8217;est transparent pour l&#8217;application.<br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1143 aligncenter\" src=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/Bitfusion-install.png\" alt=\"\" width=\"325\" height=\"413\" srcset=\"https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/Bitfusion-install.png 325w, https:\/\/loeilduse.fr\/wp-content\/uploads\/2021\/09\/Bitfusion-install-236x300.png 236w\" sizes=\"(max-width: 325px) 100vw, 325px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Du fait que les \u00e9changes entre les clients et les appliances Bitfusion passent par le r\u00e9seau IP, il est pr\u00e9f\u00e9rable d\u2019avoir au minimum un r\u00e9seau 10 Gb\/s, il faut compter en g\u00e9n\u00e9ral 1 r\u00e9seau 10 Gb\/s pour 4 GPUs.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les GPUs (Graphical Processing Unit) ont \u00e9t\u00e9 cr\u00e9\u00e9s dans les ann\u00e9es 70s pour acc\u00e9l\u00e9rer la cr\u00e9ation et la manipulation des images. Elles ont vite \u00e9t\u00e9 adopt\u00e9es par les constructeurs de console de jeux pour am\u00e9liorer la fluidit\u00e9 des graphismes. C\u2019est dans les ann\u00e9es 2000 qu\u2019a commenc\u00e9 l\u2019utilisation des GPU pour faire des calculs en dehors<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/loeilduse.fr\/?p=1139&#038;lang=fr\" class=\"home-blog-btn\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[593,595,597,591,589,599,601,603,173],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1139"}],"collection":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1139"}],"version-history":[{"count":6,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1139\/revisions"}],"predecessor-version":[{"id":1147,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1139\/revisions\/1147"}],"wp:attachment":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}