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.11 -y
conda install -c conda-forge cudatoolkit=11.5 -y
conda install -c conda-forge cudnn=8.8 -y
pip install nvidia-tensorrt
pip install tensorflow
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:
PyTorch başlangıç kılavuzu (Compute platform: CUDA, OS: Linux)
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