Construire une machine pour faire du deep learning

Il ne vous a sans doute pas échappé qu’en ce moment il y a une grande effervescence autour de « l’intelligence artificielle » dans le grand public, principalement car il y a une grande fébrilité autour du machine learning.

Cette fébrilité a des effets sur le marché de l’emploi (il est très difficile de recruter des profils machine learning/data en ce moment, et quand on a ce profil on est assailli par une surenchère d’offres de plus en plus hautes), et plus prosaïquement sur le prix du matériel qui permet de faire tourner les algos associés (oui, j’ai des actions NVIDIA ^^).

La grande mode est aux techniques de deep learning. Mon objectif dans ce billet n’est pas d’expliquer le deep learning (pour débuter lisez déjà wikipedia, puis ensuite le livre de Goodfellow, bengio et Courville qui est dispo gratuitement ou payant sur amazon), mais de vous parler des éléments techniques permettant de mettre en place des réseaux profonds.

Il y a naturellement de très nombreuses bibliothèques pour faire du deep learning (voir ici) qui ont presque tout le support CUDA, et c’est pour cela qu’il vous faut du GPU de chez NVIDIA pour vous amuser sans avoir besoin d’attendre des jours pour entrainer le moindre réseau. Pour le dire plus clairement, sans GPU pas la peine de vous y mettre.

Nous allons voir maintenant deux machines pour faire du deep learning (et aussi la plupart des tâches liées à des GPUs puissants). J’ai casé partout mon lien d’affiliation, mais soyez prudent, amazon n’est pas toujours l’endroit le moins cher !

La machine pas chère.

Si vous n’avez pas un budget illimité, notamment si vous voulez juste vous amuser un peu mais pas rivaliser dans les compétitions Kaggle, ou faire de la presta, ou si vous n’avez pas un projet ambitieux, une machine avec un GPU vous permettra d’apprendre en toute quiétude.

  • Il faut d’abord un GPU, ce sera pour cette machine une GTX 1070 (elles sont toutes là sur amazon avec mon lien d’affil) ou une GTX 1080 (ici)
  • Il vous faut un CPU et une carte mère avec de la RAM. Un i5-6600 est largement suffisant (240 euros ici), auquel vous collez un peu de RAM (16G pour 140 euros) et vous mettez le tout sur une carte mère du type de la Gigabyte GA-Z170XP-SLI (je ne sais pas si elle se vend encore, mais un truc du genre).
  • Pour le disque dur, sans moyens prenez du SATA en 1TB, ça vous coutera 50 euros (56 pour celui là).
  • Il ne manque enfin que le boitier, auquel il faut rajouter une alimentation puissante car un GPU ça consomme (je mets celle là, mais c’est sans doute overkill).

Au final, vous en avez pour un peu plus de 1000 euros, et je suis prêt à parier que vous pouvez vous en tirer pour beaucoup moins en récupérant un peu de matos chez vous.

La machine puissante.

Si vous avez des besoins en calcul très fort ou bien si vous avez un portefeuille bien rempli et que vous voulez vous amuser, je vous propose une config de ce type :

  • Pour le CPU, on part sur plus puissant avec un core i7 5930K. 6 coeurs et 3,5GHz, ça laisse de la marge sachant que le deep learning sur GPU utilise peu ou pas le CPU. A noter qu’a priori avec celui là vous avez 40 lanes PCIe, donc vous pouvez mettre jusque 4 GPUs. Il est là sur Amazon.
    Pour ventiler le CPU, un Noctua comme celui-là. N’oubliez pas la pâte thermique pour mettre entre les deux !
  • Pour la carte mère, il y a un choix pléthorique, l’Asus X99 fait le job.
    Elle est dispo ici.
  • Il faut de la RAM, mais en théorie pas beaucoup car il n’y en a pas besoin pour le calcul sur le GPU. Ceci étant, avec une machine pareille vous aurez peut-être envie de faire d’autres choses aussi, et dans ce cas 64 GB ça semble OK. De la RAM DDR4 est alors l’idéal. Il y en a sur Amazon.
  • Le nerf de la guerre pour faire du calcul sur des GPUs, c’est les GPUs. Un bon rapport prix/puissance, c’est les Titan X (architecture Pascal). Je vous propose de prendre deux GeForce GTX Titan X 12 GB (bon courage pour en trouver elles sont en rupture un peu partout). Si vous abandonnez votre recherche, prenez des GTX 1080 (dispo ici). Elles sont moins chères, prenez en plus ^^.
  • Il faut ensuite un boitier et une alim. N’oubliez pas que vous faites une machine qui va consommer comme jamais de l’électricité. Visez donc une alimentation entre 850 et 1500 W selon les GPUs que vous aurez mis dans la machine. Il y a du choix chez Corsair, mais aussi du bon matos chez EVGA en 850 W ou en 1000 W.
    Pour le boitier, tout est bon du moment qu’il est assez grand et ventilable. Moi j’aime bien le Corsair Air 540, mais au bureau notre plus gros boitier c’est une grosse bouse moche qui fait le job !
  • Enfin, il vous faut du disque. Si vous faites bien les choses vous avez déjà un NAS de grande capacité pas loin, donc il vous fait un disque rapide mais pas forcément énorme. Prenez donc un SSD de 1 TB, ça ira parfaitement. Un très bn choix sera par exemple un Samsung 850 EVO de 1 TB.

Si vous faites le calcul, la facture est lourde, en TTC cela fait entre 4000 et 4500 euros (entre 3300 et 3750 HT donc). Mais là vous aurez une puissance de feu vraiment importante, et à vous la joie du deep learning au niveau des champions !

N’hésitez pas à commenter, avec votre courtoisie habituelle bien sûr.

 

 

 

 

12 045 commentaires on "Construire une machine pour faire du deep learning"

  • Sylvain says

    Encore un super article ! Finalement pas si cher de se monter une machine solide (vu ce que tu dis sur le marché du ML, y’a un sacré ROI sur l’achat de la 1ere machine + formation solide/reconnue => poste dans le domaine).

  • A titre éducatif, a quand un RaspberryGpu ? 🙂