Pytorch¶
PyTorch is an open-source, Python-based machine learning framework developed primarily by Meta’s AI Research lab, widely used for deep learning applications like computer vision and natural language processing. It offers high-performance tensor computation and an easy-to-use API that facilitates rapid prototyping and production deployment.
Pytorch 2.x με GPU support¶
Δημιουργία PyTorch Virtual Enviroment¶
Προκειμένου να χρησιμοποιήσουμε την PyTorch με χρήση κάρτας γραφικών (GPU) πρέπει πρώτα να στήσουμε ένα περιβάλον python. Αφότου συνδεθείτε στο cluster Νεφέλη μπορείτε να τρέξετε τις παρακάτω εντολές:
module load gcc/14.2.0 python/3.14.0
python3 -m venv pytorch-env
source pytorch-env/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio
Terminal output
Collecting torch
Downloading torch-2.10.0-cp314-cp314-manylinux_2_28_x86_64.whl.metadata (31 kB)
Collecting torchvision
Downloading torchvision-0.25.0-cp314-cp314-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
Collecting torchaudio
...
Downloading torch-2.10.0-cp314-cp314-manylinux_2_28_x86_64.whl (915.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 915.7/915.7 MB 36.9 MB/s eta 0:00:00
...
Installed collected packages: torch-2.10.0 torchaudio-2.10.0 torchvision-0.25.0 triton-3.6.0 typing-extensions-4.15.0...
Αφού ολοκληρωθεί η εγκατάσταση, μπορείτε να επαληθεύσετε αν έγινε σωστά η δημιουργία του περιβάλλοντος, υποβάλλοντας το παρακάτω python script (pytorch_test.py) σε ένα από τα gpu partition της επιλογής σας:
PyTorch Test
import torch
import sys
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
sys.exit()
Job Submission¶
Για παράδειγμα, αν θέλουμε να υποβάλουμε το παραπάνω Python script στο a100 partition, μπορούμε να χρησιμοποιήσουμε το ακόλουθο bash script nefeli-pytorch.sh:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=Nefeli-pytorch
#SBATCH --nodes=1
#SBATCH --partition=a100
#SBATCH --gpus=2
#SBATCH --time=10:00
module load gcc/14.2.0 python/3.14.0 cuda/12.8.1
source ~/pytorch-env/bin/activate
# Where ~/pytorch-2.1.0/ is the path to the virtual environment
python3 pytorch_test.py
Terminal output
#(pytorch-env) [username@nefeli-slurm-login-001 ~]$ cat slurm-jobId.out
True
2
0
NVIDIA A100-SXM4-40GB