
SenLand
Cartographie de l'occupation des sols du Sénégal par deep learning — un même code exécuté sur CPU et GPU pour comparer honnêtement les deux moteurs de calcul.
À propos du projet
SenLand est le volet appliqué de la Gray Scott School (CINERI / EuroCC) : un pipeline de deep learning qui cartographie l'occupation des sols (eau, cultures, forêt, bâti, mangroves…) à partir d'imagerie satellite ouverte, et qui exécute le même code source sur CPU et sur GPU pour comparer les deux moteurs de calcul de façon rigoureuse. Développé de bout en bout sur un simple laptop (Intel i5-10300H, GTX 1650). Le projet couvre la classification (EuroSAT, 91,8 % de précision), la segmentation sémantique sur 4 zones du Sénégal (mIoU 0,62 avec un encodeur ResNet-34 pré-entraîné ImageNet), un benchmark à charge fixe (strong scaling CPU 1→4 cœurs : 54→117 img/s, GPU : 466 img/s) et un portage complet en JAX/Flax pour comparer non plus seulement les moteurs mais les frameworks (PyTorch vs JAX, jit/fusion, torch.compile). Toutes les figures et métriques sont reproductibles et versionnées.
Fonctionnalités clés
- Un seul code source, deux moteurs : CPU (OpenMP, strong scaling 1→4 cœurs) et GPU (SIMT/CUDA)
- Classification EuroSAT (10 classes, from scratch) — 91,8 % de précision de validation
- Segmentation sémantique de 4 zones du Sénégal (U-Net ResNet-34) — mIoU 0,62, spatial holdout
- Benchmark à charge fixe : CPU 54→117 img/s (1→4 threads), GPU 466 img/s
- Portage JAX/Flax (jit, fusion lax.fori_loop, donate_argnums) pour comparer frameworks à modèle identique
- Données ouvertes (ESA WorldCover, Sentinel-2 cloudless), runs reproductibles, scaffolding Slurm/Apptainer
Démo
$ git clone https://github.com/aniasse/senland.git
Cloning into 'senland'...
remote: Enumerating objects: done.
$ cdsenland
$ cat README.md
# SenLand
Cartographie de l'occupation des sols du Sénégal par deep learning — un même code exécuté sur CPU et GPU pour comparer honnêtement les deux moteurs de calcul.
▋Infos du projet
Voir le code source
github.com/aniasse/senland