Merhabalar,
Windows 10 üzerinde CUDA ve CuDNN kurulumu gerçekleştireceğiz. Öncelikle CPU ve GPU’ya değinip devamında CUDA ve CuDNN Nedir? ile devam edip, Windows 10 işletim sistemi üzerinde kurulumları tamamlayacağım.
1. CPU vs GPU
CPU (Central Processing Unit)
CPU, bir bilgisayar programının talimatlarında belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış işlemlerini yapan bilgisayarın beyni olarak çalışan elektronik devredir. Kullanmış olduğumuz bilgisayarın beyni olarak ifade edebiliriz.
Günümüzde Intel ve AMD işlemcilerinin yanı sıra Qualcomm, NVIDIA, IBM, Samsung, Hewlett-Packard, VIA, Atmel gibi şirketler işlemciler üretmektedirler.
GPU (Graphical Processing Unit)
GPU, 2D ve 3D grafikleri bir CPU ile birlikte oluşturmak için tasarlanmış özel bir elektronik devredir. GPU, Gamer’lar tarafından oyun kültürü için sıklıkla tercih edilmekte ve kullanılmaktadır. Günümüzde GPU, finansal modelleme, son teknoloji bilimsel araştırma, derin öğrenme, analitik ve petrol ve gaz aramaları gibi alanlarda hesaplamalı iş yüklerini hızlandırmak için daha geniş bir şekilde kullanılıyor.
Günümüzde GPU kartlarını NVIDIA, AMD gibi teknoloji devleri üretmekte ve piyasayı domine etmektedirler.
Bunların dışında TPU (Tensor Processing Unit) ve FPGA (Field Programmable Gate Array) kartlarının yüksek hesaplamalı işlemler için kullanıldığını bilmenizde fayda var.
Kaynak: https://iq.opengenus.org/cpu-vs-gpu-vs-tpu/
Derin Öğrenme modellerinde hesaplamalı iş yükleri üzerindeki performansından dolayı GPU kullanılmaktadır. Modellerimizi GPU üzerinde çalıştırabilmeniz için de CUDA ve cuDNN kurulumları gerekmektedir. Daha fazlası için: https://blogs.nvidia.com/blog/2009/12/16/whats-the-difference-between-a-cpu-and-a-gpu/
2. CUDA ve cuDNN Nedir?
2.1. CUDA (Compute Unified Device Architecture)
CUDA, NVIDIA tarafından grafik işlem birimlerinde (GPU’lar) genel hesaplama için geliştirilen paralel bir bilgisayar platformu ve programlama modelidir. CUDA ile geliştiriciler, GPU’ların gücünden yararlanarak bilgi işlem uygulamalarını önemli ölçüde hızlandırabilir. Linux, Windows ve Mac Osx platformları üzerinde çalışabilmektedir.
CUDA ile Kullanılan Diller
Geliştiriciler CUDA kullanırken, C, C ++, Fortran, Python ve MATLAB gibi dilleri destekleyen bir API’dir. Rakiplerine göre avantajları; paylaşımlı bellek kullanımı, GPU’dan daha hızlı veri okuma ve bit düzeyinde işlem yapılabilmesine olanak sağlaması olarak sayılabilir.
CUDA Toolkit; NVIDIA’nın GPU hızlandırmalı uygulamalar geliştirmek için gereken her şeyi sağlar. CUDA Araç Takımı GPU hızlandırmalı kütüphaneler, bir derleyici, geliştirme araçları ve CUDA çalışma zamanı içerir.
Kaynak: https://developer.nvidia.com/cuda-zone
2.2. cuDNN (CUDA Deep Neural Network Library)
CuDNN, derin sinir ağları için GPU ile hızlandırılmış bir ilkel kütüphanedir. CuDNN, ileri ve geri evrişim, pooling, normalizasyon ve aktivasyon katmanları gibi standart rutinler için yüksek ayarlanmış uygulamalar sunar.
cuDNN ile Kullanılan Frameworkler
CuDNN, Caffe, Caffe2, Chainer, Keras, MATLAB, MxNet, TensorFlow ve PyTorch gibi yaygın olarak derin öğrenme çatılarını (deep learning frameworks) hızlandırmaktadır.
Kaynak: https://developer.nvidia.com/cuDNN
3. Kurulum
Kuruluma geçmeden önce sistem (donanım ve yazılım) spesifikasyonlarını aşağıda paylaşıyorum.
Sistem Spesifikasyonları | |
OS | Windows 10 Enterprise, x64 |
CPU | Intel Core i7-5820K CPU 3.30 GHz |
RAM | 64 GB |
GPU | NVidia GeForce RTX 2080 Ti |
Disk | SSD Disk (OS) + Sata Disk (Data) |
Not: GPU kartımız NVidia marka olduğu için olduğu için aşağıdaki bağlantılar NVidia üzerinde olacaktır.
3.1. GPU Kart Modelimizi Tespit Edelim
GPU kartı modelinizi;
- Win + R (Çalıştır) [ dxdiag ] komutu ile ya da,
- Doğrudan Aygıt Yöneticisi kısmında Ekran Bağdaştırıcıları kısmından ya da,
- Win + R (Çalıştır) [ control /name Microsoft.DeviceManager ] Ekran Bağdaştırıcıları kısmından gpu kartınızı görüntüleyebilirsiniz.
3.2. CUDA Destekleyen GPU Kartları
CUDA’dan faydalanabilmeniz için ekran kartınızın CUDA’yı destekliyor olması gerekmektedir. Buradan CUDA GPU listesine https://developer.nvidia.com/cuda-gpus göz atabilirsiniz.
GPU kartınızın CUDA’yı desteklediğini öğrendikten sonra kuruluma geçebiliriz.
3.3. CUDA (CUDA Toolkit) Kurulumu
https://developer.nvidia.com/cuda-toolkit (ya da https://developer.nvidia.com/cuda-downloads) bağlantısı üzerinden güncel CUDA sürümünü download edebilirsiniz.
# CUDA Toolkit 10.0 ve cuDNN v7.6.1 versiyonu için OS tipini, mimarisi ve versiyonunu seçerek kurulumu dosyasını buradan indirebilirsiniz.
Operating System: Windows
Architecture: x86_64
Version: 10
Installer Type: exe (local)
Not: Yükleme tipi (Installer Type) olarak exe (local) seçeceğini önermekteyim. Daha önce exe(network) üzerinde problem yaşamıştım.
CUDA Toolkit Documentation v10.0.130: https://docs.nvidia.com/cuda/archive/10.0/
CUDA Toolkit 10.0 [ cuda_10.0.130_411.31_win10.exe ] Yönetici olarak çalıştır ile kurulumu tamamlayabilirsiniz.
Visual Studio Kurulumu
CUDA Toolkit kurulumu esnasında gerekmesi halinde Visual C++ kurulumunu gerçekleştiriniz. Windows işletim sistemi yüklü makinelerde bazı microsoft domainine ait yazılımlar sebebiyle yüklü gelebiliyor.
https://support.microsoft.com/tr-tr/help/2977003/the-latest-supported-visual-c-downloads
3.4. cuDNN (CUDA Deep Neural Network Library) Kurulumu
NVidia Cuda Toolkit kurulumu tamamlandıktan sonra NVidia cuDNN için https://developer.nvidia.com/rdp/cudnn-download buradan Login/Join olmanız gerekmektedir. Devamında;
Sözleşmeyi kabul ederek güncel cuDNN versiyonlarını görebilirsiniz.
# cuDNN v7.6.0 versiyonu için OS tipini, mimarisi ve versiyonunu seçerek kurulumu dosyasını buradan indirebilirsiniz.
[ cudnn-10.0-windows10-x64-v7.6.0.64.zip ] dosyasını zip arşivinden çıkardıktan sonra;
[ bin, include, lib ] klasörlerini göreceksiniz.
Devamında CUDA Toolkit kurulumu ile birlikte gelen “C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0” dizini içerisine; zip arşiv dosyası içerisinde yer alan bin, include ve lib klasörlerini kopyalayınız.
CUDA Toolkit Archive & cuDNN Archive
CUDA Toolkit Archive: https://developer.nvidia.com/cuda-toolkit-archive
cuDNN Archive: https://developer.nvidia.com/rdp/cudnn-archive
4. Tensorflow ve PyTorch ile Test Edelim
4.1. Nvidia SMI
C:\Program Files\NVIDIA Corporation\NVSMI altında [ nvidia-smi.exe ] çalıştırarak Gpu’ya ait açıklama, driver, cuda ve processleri görebilirsiniz.
4.2. Tensorflow
https://www.tensorflow.org üzerinden
#Yeni bir environment oluşturunuz.
conda create –name “tf_env” python=3.6
conda activate tf_env#Jupyter Notebook kuruyoruz
conda install jupyter
# Tensorflow gpu paketinini kuruyoruz
pip install tensorflow-gpu
kurulum bittikten sonra [ python ] yazarak
import tensorflow as tf
print(tf.test.is_gpu_available())
print(tf.test.gpu_device_name())ve
from tensorflow.python.client import device_lib
def get_available_devices():
local_device_protos = device_lib.list_local_devices()
return [x.name for x in local_device_protos]
print(get_available_devices())
4.3. PyTorch
https://pytorch.org/ üzerinden size uygun olan PyTorch dağıtımını seçiniz. Devamında:
#Yeni bir environment oluşturunuz.
conda create –name “pytorch_env” python=3.6
conda activate pytorch_env
#PyTorch paketlerini kurunuz
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
kurulum bittikten sonra [ python ] yazarak
import torch
torch.cuda.current_device()
torch.cuda.device(0)
torch.cuda.device_count()
torch.cuda.get_device_name(0)
torch.cuda.is_available() çıktılarını gözlemleyiniz.
Buraya kadar sabırla okuduğunuz/ilerlediğiniz için ayrıca teşekkür ederim. Görüş, öneri ve katkıda bulunmak isterseniz uslumetin@gmail.com‘dan bana ulaşabilirsiniz.
Görüşmek üzere, Selamlar ✋