Μετάβαση στο περιεχόμενο

Pytorch

Το PyTorch αποτελεί ένα framework μηχανικής μάθησης ανοιχτού κώδικα, βασισμένο σε Python. Aναπτύχθηκε κυρίως από το εργαστήριο AI Research της Meta και χρησιμοποιείται ευρέως για εφαρμογές βαθιάς μάθησης, όπως η υπολογιστική όραση και η επεξεργασία φυσικής γλώσσας. Προσφέρει tensor computation υψηλής απόδοσης και ένα εύχρηστο API που διευκολύνει την ταχεία δημιουργία πρωτοτύπων.

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