Sanal Ortam Kullanarak Çalışma

TRUBA altyapısında Anaconda kullanarak yarattığınız sanal ortama CUDA yükleyebilirsiniz.

Not

Sanal ortam kullanarak belirli bir Python sürümü için bir Python kurulumu ve bir dizi ek paket içeren bağımsız bir dizin ağacı yaratabilirsiniz. Bu sayede farklı uygulamalarınız için farklı sanal ortamlar yaratarak çakışan gereksinimlerin oluşmasını önlersiniz.

Kütüphanelerin Kurulumu

Uyarı

Belgenin geri kalanda ev dizinine Miniconda kurulumu yapılmış kabul edilmektedir. Ev dizininizde Miniconda kurulu değilse kurulumu Python Kılavuzu’nu takip ederek yapabilirsiniz.

Mevcut shell oturumunuzda conda’nın temel ortamını etkinleştirin:

eval "$(/truba/home/$USER/miniconda3/bin/conda shell.bash hook)"

Conda kullanarak sanal ortam yaratın ve yarattığınız ortamı aktifleştirin.

conda create --name dl-env
conda activate dl-env
conda list

Çalışmanız için gerekli paketleri kurun.

Tensorflow için:

conda install python=3.8
conda install -c conda-forge cudatoolkit=11.2
conda install -c conda-forge cudnn=8.1
pip install tensorflow-gpu==2.5

PyTorch için:

conda install -y python=3.8 pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge

Not

Yüklediğiniz kütüphanelerin versiyonlarının uyumlu olmasına dikkat edin:

Not

İstediğiniz zaman sanal ortamı kaldırıp baştan başlayabilirsiniz:

conda deactivate
conda remove -n dl-env --all
conda create --name dl-env
conda activate dl-env

sbatch Kullanarak Kuyruğa İş Gönderme

Örnek kod hazırlayın: print_gpu.py

import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))

Kuyruğa iş göndermek için bir slurm betiği hazırlayın: submit-tensorflow-job.sh

#!/bin/bash
#SBATCH -p akya-cuda        # Kuyruk adi: Uzerinde GPU olan kuyruk olmasina dikkat edin.
#SBATCH -A [USERNAME]       # Kullanici adi
#SBATCH -J print_gpu        # Gonderilen isin ismi
#SBATCH -o print_gpu.out    # Ciktinin yazilacagi dosya adi
#SBATCH --gres=gpu:1        # Her bir sunucuda kac GPU istiyorsunuz? Kumeleri kontrol edin.
#SBATCH -N 1                # Gorev kac node'da calisacak?
#SBATCH -n 1                # Ayni gorevden kac adet calistirilacak?
#SBATCH --cpus-per-task 10  # Her bir gorev kac cekirdek kullanacak? Kumeleri kontrol edin.
#SBATCH --time=1:00:00      # Sure siniri koyun.

eval "$(/truba/home/$USER/miniconda3/bin/conda shell.bash hook)"
conda activate dl-env
python print_gpu.py

Not

Betikteki [USERNAME] yertutucusunu kullanıcı adınızla değiştirmeyi unutmayın.

Uyarı

GPU kullanan işleri gönderirken toplam çekirdek sayısını işi gönderdiğiniz kümeye ve kullanacağınız GPU sayısına göre belirlemeniz gerekmektedir. İlgili bilgi GPU Kılavuzu’nda bulunmaktadır.

İşi kuyruğa gönderin.

sbatch submit-tensorflow-job.sh

Gönderdiğiniz işin durumunu kontrol edin.

squeue

İş bittikten sonra terminal çıktısını görüntüleyin.

cat print_gpu.out