Feuille de route 2021-2022 (3A)#

Page principale du cours

Plan#

Les cours et séances se déroulent sur 6 séances de 3h mardi après-midi.

Intervenants#

Xavier Dupré, Matthieu Durut.

Notes#

Liens, notebooks prévus pour les séances pratiques.

Séance 1#

Séance 2#

Les modèles de deep learning dépassent maintenant le milliards de coefficients. Le premier modèle BERT en avait 340 millions. Comment estime-t-on les coefficients de ces mastodontes ? 1 milliards de coefficients, c’est plus de dix ans de calculs sur une seule carte GPU.

Séance 3#

  • Modèle de mémoire (

  • Description de la stack, pile d’appel, stackoverflow

  • Threads

  • GPU, bloc, threads, synchronisation

Séance 4#

Paralléliser des calculs avec pytorch

pytorch est une librairie qui a su séduire beaucoup de développeurs grâce à un design intuitif et à une documentation de bonne qualité. Aujourd’hui se pose la question de créer un code rapide en dehors d’un système existant ou d’étendre une librairie qui offre déjà beaucoup de fonctionnalités. L’option qui est proposée ici est celle d’étendre pytorch dans la mesure où les dernières versions de la librairies ont été pensées pour faciliter ce scénario.

On peut utilier du code C++ depuis python ou utiliser du code Python depuis C++. C’est le premier scénario qui est illustré.

torch

CUDA

CUDA streams

Visual Studio

Combiner pytorch avec autre chose

La librairie pytorch utilise une structure de données appelée Tensor pour représenter un vecteur, une matrice… Elle est décrite par :

  • un vecteur shape (les dimensions)

  • un vecteur strides (sous ensemble)

  • un emplacement, une adresse

  • un type (float32, float64, double, int64, …)

  • un device (CPU, GPU, …)

  • un numéro de device (s’il y a plusieus GPU)

  • un destructeur permettant de détruire la structure (pas les données)

S’échanger fes informations d’une librairie à une autre, dans le plus simple des cas veut dire les copier. Mais ça prend trop de temps d’où l’introduction d’une structure commune d’échange (API). Elle a été récemment introduite dans les dernières versions de torch. Elle est encore en projets dans numpy.

Traiter un jeu gros de données

La base Open DAMIR : base complète sur les dépenses d’assurance maladie inter régimes est sans doute une base très intéressante mais aussi un défi quand on souhaite s’y attaquer.

Streaming local

Streaming distant

  • dask, s’interface avec scikit-learm

  • spark

Voir également awesome-streaming.

Histoires, problèmes résolus

Séance 5#

Séance 6#