Aller au contenu

PyTorch/TensorFlow

Lancer ses calculs sur le GPU

L'accès au GPU se fait par la partition gpu, vous aurez un accès exclusif à la carte, une Nvidia A100 40Go, pour une durée maximale de 4h.

On rappelle brièvement les commandes successives à lancer et expliquées ici dans le détail.

Pour se connecter à la frontale de soumission:

ssh -X calcul

Ensuite on lance sa session interactive sur fourier par

salloc -p gpu srun --pty /bin/bash

Ou plus explicitement

salloc --partition=gpu srun --pty /bin/bash

Et avec le déport d'affichage

salloc --x11 -p gpu srun --pty /bin/bash

Vous pouvez cumuler cette partition avec les QoS pour demander plus de CPU (le temps maximal reste fixé à 4h).

Par exemple

salloc --x11 -p gpu --qos=medium -c 8 srun --pty /bin/bash
Pour une demande du GPU et de 8 CPU dans une session interactive.

Enfin, Dans votre script sbatch, vous pouvez ajouter le drapeau

#SBATCH --partition=gpu

Installer PyTorch et TensorFlow avec uv

On vous conseille d'utiliser uv, un outil de gestion d'environnement Python. Vous pouvez regarder ici nos recommandations d'utilisation et une notice pour rediriger le cache vers l'espace scratch (et réduire les temps de chargement).

Les versions actuellement compatibles sur fourier (CUDA 11x) sont :

  • pytorch 2.7.1
  • tensorflow 2.14.1

Pour installer votre environnement, après configuration de uv, placez votre projet sur l'espace scratch /scratch/$USER/<mon-projet>.

Ensuite, créez un fichier pyproject.toml. Il contient toutes les informations pour construire votre environnement python nécessaire à l'exécution de vos scripts.

Pour pytorch

[project]
name = "mon-projet"
version = "0.1.0"
requires-python = ">=3.11,<3.13"
dependencies = [
    "torch==2.7.1",
    "torchvision==0.22.1",
    "torchaudio==2.7.1",

    "numpy",
    "mes-autres-dependances",
    ...
]

[[tool.uv.index]]
name = "pytorch-cu118"
url = "https://download.pytorch.org/whl/cu118"
explicit = true

[tool.uv.sources]
torch = [{ index = "pytorch-cu118" }]
torchvision = [{ index = "pytorch-cu118" }]
torchaudio = [{ index = "pytorch-cu118" }]

Pour tensorflow

[project]
name = "mon-projet"
version = "0.1.0"
requires-python = ">=3.9,<=3.11"
dependencies = [
    "tensorflow[and-cuda]==2.14.1",

    "numpy",
    "mes-autres-dependances",
    ...
]
La création de l'environnement se fait en deux étapes :

  1. Résolution des dépendances

    uv lock
    
    Cette commande crée un lockfile uv.lock pour figer l'écosystème de votre projet

  2. Installation

    uv sync
    
    Pour obtenir un dossier d'environnement .venv

Enfin, activez votre environnement par

source .venv/bin/activate
Note

Pour automatiser l'activation de votre environnement à l'entrée dans votre projet, vous pouvez utiliser l'outil direnv. Pour ce faire, créez un fichier .envrc dans votre projet avec

source .venv/bin/activate
Puis activez direnv par
direnv allow
Plus d'informations ici

Et d'exécuter vos scripts :

python mon-calcul-gpu.py