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

Part 1

Part 2

et…

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

  • parallélisation mémoire contrainte ou presque

  • quantization

  • réseau de neurones

  • problème de convergence

  • utilisation de plusieurs processeurs, CPUs, GPUs…, NPU, intel-npu

  • qui fait quoi ? data scientist, développeur

  • hacking (attaque), Spectre, Meltdown

  • https://fr.wikipedia.org/wiki/DO-178, PowerPC, RISC

  • MAIA

  • TPU

Sujets connexes

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

  • réalisation d’un benchmark

  • fusion d’opérations : cas de l”attention:

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.

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