Jupyter GPU
Do poniższego poradnika wymagane jest ukończenie sekcji SSH.
Konieczna będzie także rezerwacja maszyny z GPU, na przykład ekskluzywna na 1 godzinę:
salloc --no-shell --partition=gpu --gpus=1 \
--exclusive --time=01:00:00
Zalecane jest użycie multipleksera terminala podczas realizacji tego poradnika.
Bezpośrednio po zalogowaniu do węzła obliczeniowego z GPU widoczne są tylko podstawowe programy. Aby skorzystać z innego oprogramowania konieczne jest zmodyfikowanie środowiska użytkownika za pomocą systemu modułów środowiskowych.
Moduł zawiera w sobie informację o oprogramowaniu oraz metodzie jego udostępnienia dla użytkownika. Po jego załadowaniu środowisko zostanie rozbudowane o nowe funkcje. Analogicznie wyładowanie modułu je usunie. Modły mogą być ze sobą łączone, mogą posiadać zależności (jeden moduł ładuje inne) oraz wchodzić ze sobą w konflikt (jeden moduł nie może być jednocześnie załadowany z innym).
Conda to narzędzie ułatwiające zarządzanie oprogramowaniem języka Python. W klastrze dostępne są dystrybucje Anaconda i Miniconda. Pierwsza z nich zawiera zestaw oprogramowania w bazowym środowisku, a druga tylko minimalny służący do konstrukcji własnych środowisk.
Aby rozpocząć pracę z Jupyterem należy załadować moduł anaconda
:
module load anaconda
Znak zachęty powinien ulec zmianie poprzez dodanie nazwy środowiska, w tym wypadku bazowego, przed nazwą użytkownika:
(base) s123456@g1n1:~$
Moduł anaconda
zawiera w sobie dwa środowiska Python dostosowane do obsługi GPU oparte na PyTorch i TensorFlow.
Listę dostępnych środowisko możemy uzyskać za pomocą polecenia conda env list
:
# conda environments:
#
base * /projects/wmi_conda/anaconda/2024.02-1
pytorch-gpu /projects/wmi_conda/anaconda/2024.02-1/envs/pytorch-gpu
r /projects/wmi_conda/anaconda/2024.02-1/envs/r tf-gpu /projects/wmi_conda/anaconda/2024.02-1/envs/tf-gpu
Aktywacja środowiska
tf-gpu
zawierającego TensorFlow wraz z Jupyter Lab:conda activate tf-gpu
Aktywacja środowiska
pytorch-gpu
zawierającego PyTorch wraz z Jupyter Lab:conda activate pytorch-gpu
Znak zachęty powinien zmienić się wskazując nazwę aktywnego środowiska.
Należy uruchomić Jupyter Lab w trybie nasłuchu na wszystkich adresach aby można było się do niego połączyć z przeglądarki na innym komputerze (wymagana jest sieć WMI lub VPN):
jupyter lab --ip 0.0.0.0
Z wypisanych komunikatów należy wybrać adres w domenie cluster.wmi.amu.edu.pl
oraz skopiować jego całość do przeglądarki internetowej, przykładowo:
Or copy and paste one of these URLs: http://g1n1.cluster.wmi.amu.edu.pl:8888/lab?token=ABCDE
Aby przetestować poprawne uruchomienie środowiska należy uruchomić nowy kernel Python oraz:
w przypadku TensorFlow wykonać następujący kod:
from tensorflow.python.client import device_lib = device_lib.list_local_devices() local_device_protos for x in local_device_protos if x.device_type == 'GPU'] [x.physical_device_desc
Jeśli wszystko się udało, to wynik powinien wyglądać podobnie do:
['device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:00:10.0, compute capability: 8.9']
w przypadku PyTorch wykonać następujący kod:
import torch print([(i, torch.cuda.get_device_properties(i)) for i in range(torch.cuda.device_count())])
Jeśli wszystko się udało, to wynik powinien wyglądać podobnie do:
[(0, _CudaDeviceProperties(name='NVIDIA GeForce RTX 4090', major=8, minor=9, total_memory=24210MB, multi_processor_count=128))]