Pardus için CUDA 11.2 ve cuDNN 8.1.0 Kurulumu ile GPU’da Tensorflow Çalıştırma

pardus-tensorflow


Merhaba, yapay zeka alanında çalışma yapmak isteyen Pardus kullanıcıları için Google tarafından paylaşılan yapay zeka kütüphanesi TensorFlow ve bu kütüphaneyi Nvdia grafik kartı üzerinden(GPU) çalıştırma anlatılacaktır. TensorFlow kurulumu anlatılmadan önce Nvidia grafik kartını kullanmak için gerekli olan CUDA 11.2 ve cuDNN 8.1.0 kurulumu anlatılmıştır. Bu işlemleri yaparken Pardus 21.3 GNOME sürümünü kullanılmış olup bu yazıda kolay bir kurulum gerçekleştirmeniz için karşılaşabileceğiniz sorunların çözümü de anlatılmıştır.

TensorFlow, Google tarafından 9 Kasım 2015 yılında yayınlanan ve makine öğrenimi üzerine çalışma yapmak için geliştirilen bir kütüphanedir. Derin sinir ağlarının eğitimi ve kullanımı üzerine kullanılan TensorFlow ayrıca günümüzde çeşitli cihazlarda kullanılmaktadır. Normal bir şekilde CPU üzerinden çalıştırılabilen TensorFlow, Nvidia tarafından yayınlanan CUDA ve cuDNN ile birlikte GPU üzerinden de çalıştırılabilir. Python desteğinin olması günümüzde yazılım geliştiricileri açısından önemli bir özelliğe sahip olan TensorFlow, Google tarafından Github üzerinden kaynak kodları paylaşılmaktadır.

TensorFlow CUDA 11.2 ve cuDNN v8.1.0 desteğine sahiptir. CUDA(Compute Unified Device Architecture), Nvidia tarafından C ile yazılmış ve GPU üzerinden yazılım çalıştırmakta kullanılan bir eklentidir.

cuDNN(CUDA Deep Neural Network ), Nvidia tarafından derin sinir ağlarını GPU üzerinden hızlı bir şekilde çalıştırmayı sağlayan CUDA desteğini kullanan bir kütüphanedir. Tensorflow gibi birçok derin sinir ağları algoritmasını çalıştırmaktadır. PyTorchKerasMATLAB gibi desteklediği kütüphane ve yazılımlar mevcuttur.

Başlangıç

İlk önce sisteminizde yer alan son güncellemeleri kontrol etmeniz ve yüklemeniz gerekmektedir.

guncelleme-pardus


TensorFlow kurulumu için ilk yapmanız gereken CUDA 11.2 ve cuDNN 8.1.0 kurmaktır. Bu yazılımları kurmak için cihaznınızda yüklü olan Nvidia grafik kartı sürücülerini ve grafik işlemi yapan paketleri kaldırmanız gerekmektedir. Eğer Nvidia grafik kartı sürücünüz Nvidia Driver 450 üzeri ise CUDA 11.2, cuDNN 8.1.0 ve TensorFlow kurulumu yapabilirsiniz.
Cihazınızda yüklü olan Nvidia sürücülerini kaldırın.

Eğer Nvidia sürücülerine sahip değilseniz grafik kartınız için işlem yapan diğer ilgili paketleri kaldırın:

sudo apt-get purge nvidia*


nvidia-driver-delete

nvidia-driver-delete



Kurulu olan paketleri kaldırma işlemi yaparken manuel olarak kaldırmanız gereken paketler terminal ekranında karşınıza çıkacaktır. Bu paketler genel olarak glx-alternative-mesa update-glx isimli paketlerdir. Bu paketleri sudo apt autoremove komutu ile kaldıracaksınız.

nvdia-driver-delete
sudo apt autoremove glx-alternative-mesa update-glx
nvdia-driver-delete

Bu paketleri kaldırın ve cihazınızı yeniden başlatın:

CUDA 11.2 Kurulumu

Daha sonra yapmanız gereken CUDA 11.2’yi kurmak olacaktır. Sisteminizden Nvidia sürücilerini ya da diğer ilgili paketleri sildikten sonra tekrardan grafik kartı sürücüsü kurmanıza gerek yoktur. Bunu nedeni CUDA kurulurken sizin için uygun Nvidia sürücülerini ve yazılımlarını kurmasıdır. İlk önce Nvidia’nın sitesinde yer alan CUDA 11.2 sayfasını açınız.

Karşınıza gelen sayfadan gerekli seçenekleri şu şekilde seçiniz: Linux, x86_64, Debian, 10, debian(local).

Bu işlemleri yaptıktan sonra karşınıza kurulum için aşamalar yazılı olarak gelecektir.

cuda-pardus-kurulum

Karşınıza gelen bu sayfadaki kurulum aşamalarına göre ilk önce ilgili .deb paketini indirmeniz gerekecektir.

wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda-repo-debian10-11-2-local_11.2.0-460.27.04-1_amd64.deb
cuda-pardus-kurulum

Daha sonra .deb paketini kurunuz, eğer çalıştırmakta sorun yaşarsanız 

chmod +x *

 komutunu çalıştırın:

sudo dpkg -i cuda-repo-debian10-11-2-local_11.2.0-460.27.04-1_amd64.deb
cuda-pardus-kurulum

Kurduğunuz .deb paketi ile ilgili aşağıdaki komutu çalıştırın:

sudo apt-key add /var/cuda-repo-debian10-11-2-local/7fa2af80.pub
cuda-pardus-kurulum

Daha sonra aşağıdaki komutu çalıştırın:

sudo add-apt-repository contrib

Eğer bu komut çalıştıracak paket cihazınızda yüklü değilse karşınıza şu ekran gelecektir.

cuda-pardus-kurulum

Eğer sizde bu hata meydana karşınıza gelmezse bu kısmı atlayın.

Bu hatayı çözmek için aşağıdaki kodu terminalde çalıştırıp ilgili paketi kurunuz.

sudo apt-get install software-properties-common
cuda-pardus-kurulum

Bu paketi kurduktan sonra CUDA 11.2 kurulumuna aşağıdaki komut ile devam ediniz.

sudo add-apt-repository contrib

Daha sonra aşağıdaki komutu çalıştırın:

sudo apt-get update
cuda-pardus-kurulum

En son adımda CUDA 11.2 kurulumunu tamamlamak için aşağıdaki komutu çalıştırın ve CUDA 11.2 sisteminize kurulacaktır.

sudo apt-get -y install cuda
cuda-pardus-kurulum

Kurulum esnasında kurulan bir paket konusunda sisteminiz size uyarı verecektir. Bu bir hata değildir ve karşınıza çıkan ekranda TAMAM seçeneğini işaretleyip devam ediniz.

cuda-pardus-kurulum
cuda-pardus-kurulum

İşlem bittikten sonra sisteminizi yeniden başlatın.
Sisteminiz açıldıktan sonra terminal ekranınıza aşağıdaki komutu yazarak ekran kartı sürücünüzün çalışıp çalışmadığını kontrol ediniz.

nvidia-smi
cuda-pardus-kurulum

Processes başlığı altında bir işlem varsa CUDA 11.2 ve Nvidia sürücünüz kurulmuştur. Sistem ana dizininizde yer alan .bashrc isimli gizli olan dosyaya aşağıdaki metinleri ekleyiniz. Dosyayı görmek ve aşağıdaki metinleri eklemek için dosya yöneticinizdeki gizli dosyaları göster seçeneğini aktif hale getiriniz.

cuda-pardus-kurulum
# CUDA
export CUDA=11.2
export PATH=/usr/local/cuda-$CUDA/bin${PATH:+:${PATH}}
export CUDA_PATH=/usr/local/cuda-$CUDA
export CUDA_HOME=/usr/local/cuda-$CUDA
export LIBRARY_PATH=$CUDA_HOME/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-$CUDA/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export NVCC=/usr/local/cuda-$CUDA/bin/nvcc
export CFLAGS="-I$CUDA_HOME/include $CFLAGS"
cuda-pardus-kurulum

Son olarak .bashrc dosyası için aşağıdaki kodu çalıştırınız.

source ~/.bashrc

Bu adımlardan sonra CUDA 11.2’yi kullanabileceksiniz.

cuDNN 8.1.0 KURULUMU

cuDNN genel olarak Debian tabanlı sistemler için .tgz formatında sunulmaktadır. Bu sıkıştırılmış dosyayı indirdikten sonra kurulumu yapmak için çeşitli adımları gerçekleştirmeniz gerekcektir. cuDNN 8.1.0’ı daha kolay bir şekilde kurmak isterseniz size başka bir Debian tabanlı sistem için Nvidia tarafından yayınlanan .deb paketlerini kurmanızı öneririm. Böylece daha kolay bir şekilde cuDNN 8.1.0 kurmuş olacaksınız.
Öncelikle cuDNN 8.1.0’ın web sayfasına gidiniz. Karşınıza gelen ekranda Nvidia hesabınız ile giriş yapınız.

cudnn-pardus-kurulum

Daha sonra karşınıza gelen ekranda yer alan sözleşmeyi onaylayın.

cudnn-pardus-kurulum

cuDNN sürümlerinin yer aldığı sayfada Arhived cuDNN Releases’i tıklayın.

cudnn-pardus-kurulum

cuDNN 8.1.0 ’ı iki farklı yol ile kurabilirsiniz, hem .tgz ile hem .deb ile kurabilirsiniz. Size önerim daha sağlıklı bir kurulum için .deb ile kurmaktır.

1.YÖNTEM – DEB İLE KURMAK(TAVSİYE EDİLİR)

cuDNN 8.1.0’ı .deb paketi ile kurmak isterseniz karşınıza gelen sayfada Library for Windows and Linux, Ubuntu başlığı altında yer alan cuDNN Runtime Library for Ubuntu 18.04 x86.64(DEB) paketi ile cuDNN Developer Library for Ubuntu 18.04 x86.64(DEB) paketini indiriniz.

cudnn-pardus-kurulum

Daha sonra bu paketleri sırası ile çalıştırınız.

sudo dpkg -i libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.1.0.77-1+cuda11.2_amd64.deb
cudnn-pardus-kurulum
cudnn-pardus-kurulum

Bu adımlar ile birlikte cuDNN 8.1.0’ı başarılı bir şekilde kurmuş oldunuz. Bundan sonraki yapmanız gereken bir diğer adım ise sisteminizi yeniden başlatmaktır.

2.YÖNTEM – TGZ İLE KURMAK

Eğer tgz ile kurmak isterseniz bu bağlantıya tıklayabilirsiniz.
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
cuDNN’nin indirme web sayfasından cuDNN library for Linux x86.64 dosyaını indirin.
Daha sonra 

sudo apt-get install zlib1g

 paketini kurunuz.
İndirdiğiniz dosyayı 

tar -xvf dosya_adi

 bulunduğunuz dizine çıkarınız ve oluşan yeni klasörün içinde aşağıdaki kodları çalıştırınız.

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

Böylece cuDNN 8.1.0’ı kurmuş oldunuz. Eğer bir hata alırsanız cudnn-*-archive yazan yazıyı bulunduğunuz klasörün adına göre yeniden yazınız.


MINICONDA Kurulumu

TensorFlow kurulumu için Anaconda reposunda yer alan Miniconda yazılımını indirmeniz gerekmektedir.

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh

Eğer gerekli curl paketi sisteminizde yok ise uyarı alacaksınız.

conda-miniconda-pardus-kurulum


Bu hatayı düzeltmek için curl paketini yüklemeniz gerekecektir.

sudo apt-get install curl
conda-miniconda-pardus-kurulum

Daha sonra Anaconda reposuna tekrar bağlantı kurmalısınız ve Miniconda yazılımını kurunuz.

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
conda-miniconda-pardus-kurulum

Miniconda yazılımını çalıştırılabilir duruma getirmek için bash indirdiğiniz dosyayı ediniz ve kurulum adımlarını sırası ile yapmaya başlayınız.

conda-miniconda-pardus-kurulum

ENTER yazıp devam ediniz.

conda-miniconda-pardus-kurulum

yes yazıp devam ediniz

conda-miniconda-pardus-kurulum

Kurulacak ortamı onaylayınız.

conda-miniconda-pardus-kurulum

yes yazarak devam ediniz.

conda-miniconda-pardus-kurulum

Miniconda kurulumu gerçekleşti. Daha sonra 

source ~/.bashrc

 komutunu çalıştırmayı unutmayınız.

Bir conda ortamı oluşturun. Bu ortamı oluştururken internet bağlantınızın olması gerekmektedir.

conda create --name tf python=3.9
conda-miniconda-pardus-kurulum
conda-miniconda-pardus-kurulum

y yazınız ve ENTER’a tıklayınız.

conda-miniconda-pardus-kurulum

Sırası ile 

conda deactivate

 ve 

conda activate tf

 komutlarını çalıştırın.

conda-miniconda-pardus-kurulum

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0

komutu ile çalışma alanınızda gerekli olan bazı paketleri kurmanız gerekecektir. Bu kod çalışırken isterseniz cudatoolkit ve cudnn paketlerini yükleme sırası gelince ctrl-c ile sıra atlayın. Sisteminizde mevcut olarak CUDA 11.2 ve cuDNN 8.1.0 yüklüdür. İsterseniz bu adımı geçebilirsiniz.

conda-miniconda-pardus-kurulum


conda-miniconda-pardus-kurulum

Her terminal açılışında conda paketleri için export yapmanız gerekmektedir.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/

Her terminal ekranı açtığınızda conda dosyaları için export yapmak zaman kaybına neden olacaktır. Bunu önlemek için tek seferlik gerçekleştireceğiniz işlem ile bu sorunu ortadan kaldırmış olacaksınız.

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
conda-miniconda-pardus-kurulum

TENSORFLOW KURULUMU

Artık TensorFlow kurulumu için hazırsınız. TensorFlow ‘u pip üzerinden sisteminize kuracaksınız. Bunun için sisteminizde pip paketi olması ya da sisteminizde mevcut olan pip paketinin güncel olması lazımdır. Sisteminizde pip paketi yoksa 

sudo apt-get install python3-pip python-dev


komutunu çalıştırmanız gerekmektedir.
Sisteminizde yer alan pip paketini güncelleyiniz.

pip install --upgrade pip
tensorflow-pardus-kurulum


Şimdi pip ile TensorFlow kurulumunu yapmak için aşağıdaki komutu çalıştırın.

pip install tensorflow
tensorflow-pardus-kurulum

TensorFlow başarılı bir şekilde Miniconda ortamında kuruldu. Sağlıklı bir şekilde işlem yaptığını görmek için ekran kartınızdaki çalışan işlemlere bakınız.

nvidia-smi

ile ekran kartınızda çalışan işlemlere bakınız. Görüleceği üzerine henüz bir TensorFlow işlemi başlatmadınız.

tensorflow-pardus-kurulum


Aşağıdaki kodları açık olan mevcut terminalde çalıştırın. Ayrıca yeni bir terminal açın ve nvidia-smi komutunu hazırda bekletin. Aşağıdaki kodları mevcut terminalde çalıştırırken yeni açtığınız terminalde 

nvidia-smi

 kodunu hemen çalıştırın.

python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
tensorflow-pardus-kurulum

Görüleceği üzerine ekran kartınız ilgili TensorFlow işlemini yapmış oldu. Ayrıca kodları çalıştırdığınız terminalde ekran kartınızın ismi de gözükecektir.

tensorflow-pardus-kurulum

Daha sonra 

conda deactivate

 ile bulunduğunuz ortamdan çıkış yapabilirsiniz. Bundan sonraki her TensorFlow çalıştırmak istediğinizde ilk önce aşağıdaki komutu çalıştırın:

conda activate

Örnek olarak:

python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
tensorflow-pardus-kurulum
tensorflow-pardus-kurulum

Kaynakça:

https://medium.com/analytics-vidhya/install-cuda-11-2-cudnn-8-1-0-and-python-3-9-on-rtx3090-for-deep-learning-fcf96c95f7a1

https://linuxnotlari.com/ubuntu-nvidia-surucusu-nasil-kaldirilir/

https://www.blopig.com/blog/2022/05/linux-horror-stories-vol-ii-automatic-drivers-update/#:~:text=A%20familiar%20error%20message%20confirmed,will%20make%20it%20work%20again.

https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Debian&target_version=10&target_type=deblocal

https://towardsdatascience.com/yolov4-with-cuda-powered-opencv-dnn-2fef48ea3984

https://itsfoss.com/add-apt-repository-command-not-found/

https://developer.nvidia.com/cudnn

https://developer.nvidia.com/rdp/cudnn-download

https://www.tensorflow.org/install/pip

https://tr.wikipedia.org/wiki/TensorFlow

https://github.com/tensorflow/tensorflow

https://tr.wikipedia.org/wiki/CUDA

https://docs.nvidia.com/deeplearning/cudnn/developer-guide/index.html

https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

https://www.geeksforgeeks.org/how-to-install-pip-in-linux/

Yorum Gönder

Yorum yaptığınız için teşekkürler :)

Daha yeni Daha eski