-- Kurulumlar

Windows 10 üzerinde CUDA ve CuDNN Kurulumu

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

Kaynak: https://blogs.nvidia.com/wp-content/uploads/2009/12/6a00d834515fca69e201287663224d970c.jpg
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/

Kaynak: https://iq.opengenus.org/content/images/2018/11/cgt_1.jpg

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;

  1. Win + R (Çalıştır) [ dxdiag ] komutu ile ya da,
  2. Doğrudan Aygıt Yöneticisi kısmında Ekran Bağdaştırıcıları kısmından ya da,
  3. 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/

Installing CUDA Toolkit on Windows

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())

Tensorflow Gpu
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 ✋