2025-05-31: Feuille de route 2024-2025 (3A)

Plan

Les cours et séances se déroulent sur 4 séances de 3h au second semestre.

Evaluation

Utilisation de vos compétences statistiques pour fabriquer un benchmark adaptatif où l’on trouve la meilleure option de parallélisation pour un algorithme parallélisé avec moins d’essais qu’une grille.

Séance 1 - 9/04: pararalléliser comment?

Part 1

  • stratégies de parallélisation (big data, deep learning, calcul matriciel…)

  • coût, calcul, communication, caches

  • CPU vs GPU

  • conflits, synchronisation, mutex

  • L1: 32 Ko, 3/4 Go/s, 1/2 cycles d’horloge, L2: 1Mo, 20 Go/s, 3/5 cycles d’horloge, L3: 8Mo, 40 Go/s, 10/20 cycles d’horloge

  • thread / process

  • AVX

  • branching

  • cas du produit vectoriel

  • produit matriciel

Part 2

  1. Environnement

Séance 2 - 16/04: python, pybind11, cython

Séance 3 - 23/04: alorithmes parallélisés

Partie 1

Ecriture d’un benchmark.

Comparaison d’une multiplication de matrice sparse et dense, évolution en fonction du nombre des dimensions, du taux de « sparsité ».

Vaut-il mieux calculer (XA, XB) séparément ou X(A,B)(A,B) désigne une matrice où A et B sont concaténées selon les colonnes.

AB est-il plus ou moins rapide que AB” si les matrices sont carrées ?

Profiling

Lecture de benchmark.

Pour aller plus loin

Partie 2

Séance 4 - 30/04: fusion d’opérations et projets

Attention(Q,K,V)=softmax\left(\frac{QK'}{\sqrt{d_k}}\right)V

avec

Q \in \mathbb{R}^{m \times d_q}, K \in \mathbb{R}^{m \times d_k}, V \in \mathbb{R}^{m \times d_V} et :

softmax(z_1,...z_n)_i = \frac{e_i}{\sum_{i=1}^{n} e_i}

Utilisation de vos compétences statistiques pour fabriquer un benchmark adaptatif où l’on trouve la meilleure option de parallélisation pour un algorithme parallélisé avec moins d’essais qu’une grille.

Sujets connexes

Installation de ce module

Il ensuite exécuter les instuctions suivantes en ligne de commande.

git clone https://github.com/sdpython/teachcompute.git
cd teachcompute
pip install -e . -v --no-build-isolation

Si ça ne marche, installer cmake. Puis :

export PYTHONPATH=<this folder>
python _doc/examples/plot_bench_cpu_vector_sum.py

Lectures

Collège de France

Points particuliers

  • race condition <https://en.wikipedia.org/wiki/Race_condition>

  • AVX

  • Cache

Livres

Autres