TensorFlow na serwerach GPU


Obliczenia należy wykonywać na węzłach klastra wyposażonych w akceleratory GPU.

Najwygodniej jest skorzystać z kontenera przygotowanego przez NVIDI'ę. Dla zoptymalizowanego uruchomienia warto pobrać obraz i stworzyć lokalną kopię w formacie .sif, zamiast uruchamiać bezpośrednio z Docker Hub. Dzięki temu unikniesz konieczności ponownego pobierania obrazu przy każdym uruchomieniu.

Wcześniej warto ustawić zmienną wskazującą na katalog tymczasowy/cache na zasób dyskowy, który ma odpowiednio dużo miejsca, np w katalogu scratch:

mkdir -p /users/scratch1/${USER}/.apptainer 
export APPTAINER_CACHEDIR=/users/scratch1/${USER}/.apptainer

Budowa obrazu w formacie sif:

module load trytonp/apptainer/1.3.0
apptainer build tensorflow_24.09-tf2-py3.sif docker://nvcr.io/nvidia/tensorflow:24.09-tf2-py3

Po utworzeniu pliku .sif możesz uruchomić kontener za pomocą Apptainera, zapewniając jednocześnie dostęp do GPU

apptainer exec --nv tensorflow_24.09.sif python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"