6 Ağustos 2018 Pazartesi

Türkiye'de Intel Movidius Neural Compute Stick (NCS) Nereden, Nasıl Alınır ?

Türkiye'de Intel Movidius Neural Compute Stick (NCS) Nereden, Nasıl Alınır ?


Movidius Neural Compute Stick (NCS), Intel'in derin öğrenme için geliştirdiği küçük (usb boyutunda), fansız cihazıdır. Düşük güçlü yüksek performanslı Intel Movidius Vision Processing Unit (VPU) işlemcisi tarafından desteklenen ve milyonlarca akıllı güvenlik kamerası, işaret kontrollü dronlar, endüstriyel makine görme ekipmanı ve daha fazlasında kullanılabilen bir cihazdır. Daha detaylı bilgiye M. Ayyüce Kızrak'ın Intel-Movidius “Neural Compute Stick” Nedir ve Nasıl Kullanılır yazısından ulaşabilirsiniz. Raspberry Pi 3 ile kullanımını Yavuz Kömeçoğlu'nun Raspberry Pi 3 üzerinde Intel Movidius Neural Compute Stick ile Derin Öğrenme Uygulamaları Çalıştırma yazısından öğrenebilirsiniz. Bu yazının amacı bu cihazı nasıl satın alabileceğiniz hakkında.
Maalesef bu güzel ve kullanışlı cihazı Türkiye'de direk alabileceğiniz herhangi bir satıcı bulunmuyor. Bu cihaza ulaşmanın tek yolu yurt dışından getirtmek olarak gözüküyor ve bende öyle yaptım.



Adım 1. Intel NCS için hazırlanan web sayfasını açıyoruz.


Adım 2. WHERE TO BUY yazan butona tıklıyoruz. Karşımıza 6 farklı seçenek çıkıyor. JD, AKIZUKI DENSHI, SWITCH SCIENCE adlı firmaların sayfaları anlamadığım bir dilde olduğu için bu 3 seçeneği eledim. RS Component'de diğerlerine göre biraz pahalıydı ve ürün fiyatına ek olarak vergi ücreti alıyorlardı. Hızlı bir şekilde elime ulaşması için Mouser Firmasını seçtim ve 80$ karşılığında ürünü aldım. Buraya kadar herşey güzel ve bu yazıyı yazmaya ne gerek vardı diyebilirsiniz. Ancak ürün Gümrüğe takıldı ve ürünü almayı düşünenlerin bu aşamalardan haberdar olması gerektiğini düşündüm.


Adım 3. Mouser Firması Almanya'da olmasına rağmen ürün UPS kargo şirketi ile önce ABD'den Almanya'ya daha sonra Türkiye'ye geldi ve telefonuma bir mesaj geldi. Ürünün Türkiye'ye ulaştığı ancak Gümrük işlemlerine tabi tutulacağı yazıyordu ve ilgili linkte ürünü gümrükten alabilmem için 3 farklı seçenek sundular. Bu 3 seçeneği ve detaylarını aşağıdaki ekran görüntüsünde bulabilirsiniz.


Ben UPS Türkiye ile Çekilmesi seçeneğini seçtim. Bu seçenekte ürünün faturada belirtilen fiyatına göre hesaplanan vergi ücretini ödüyorsunuz ve bunun dışında ek bir ücret ödemiyorsunuz. 80 TL belirtilen hesaba EFT yaptım ve gümrük işlemleri tamamlanan ürünüm elime ulaştı. Ürün 80$ + 80 TL ücret ile elime ulaştı. Ürünü 27 Temmuz 2018 tarihinde sipariş verdim. 30 Temmuz'da Türkiyeye ulaştı ve Gümrük işlemlerini başlatmak için 31 Temmuz tarihinde UPS Türkiye Kargo şirketine yetki belgesi verdim. Araya haftasonu girmesi sebebiyle 6 Agustos tarihinde yani sipariş verdikten yaklaşık 10 gün sonra elime ulaştı. Umarım NCS almak isteyenler için yol gösterici bir yazı olmuştur.

1 Temmuz 2018 Pazar

Dlib (C++) Kütüphanesinin Ubuntu 16.04 için cuDNN Konfigurasyonu ile Kurulumu ve Qt ile Kullanılması

Dlib (C++) Kütüphanesinin Ubuntu 16.04 için CUDA-cuDNN Konfigurasyonu ile Kurulumu ve Qt ile Kullanılması


Dlib yapay öğrenme - makine öğrenmesi (machine learning) algoritmalarını içeren C++ kütüphanesidir ve günlük hayatımızda karşılaştığımız problemleri çözmek için kullanabileceğimiz kompleks yazılımlar geliştirebileceğimiz bir araçtır. Yüz tanıma (face recognition), yüz tespiti (face detection), yüz modelleme (facial landmarks) gibi uygulamaları Dlib kütüphanesi ile kolayca geliştirebilirsiniz. Dlib C++ programlama dili ile kullanılan bir araç olmasının yanında Python programlama dili ile de kullanılabilmektedir. Python ile kullanmak için kurulumunuzu ona göre yapmanız gerekmektedir. Bu yazımda C++ dili için kurulum yapılacaktır ilerleyen günlerde Python dili için kurulumun nasıl yapıldığını anlatmayı planlıyorum. Ayrıca bu kurulum da cuDNN konfigurasyonu da yer alacaktır böylece DLib kütüphanesi kullanarak geliştirdiğiniz algoritmalarınızı GPU üzerinde çalıştırabileceksiniz. Aşağıdaki adımları takip ederek Ubuntu 16.04 işletim sisteminize Dlib kurulumunu yapabilir ve Qt ile uygulama geliştirebilirsiniz.

Kurulumu cuDNN ile yapmak için bilgisayarınıza önceden cuDNN kurulumu yapılmış olması gerekmektedir. Önceki yazımı takip ederek bilgisayarınıza cuDNN kurabilirsiniz.

Ubuntu 16.04 için cuDNN Kurulumu


Adım 1. Dlib kütüphanesinin en son yayınlanan versiyonu sitesinden indirilir (Bu yazıda 19.13 versiyonu indirildi).




Adım 2. İndirilen sıkıştırılmış dosya çıkarılır.


Adım 3. dlib-19.13 klasörü içerisine "build" adında boş bir klasör oluşturulur.


Adım 4. Kurulum için cmake-gui'den faydalanacağız. Eğer cmake-gui kurulu değilse aşağıdaki kodu çalıştırarak cmake-gui'nin kurulumunu gerçekleştirebilirsiniz.


sudo apt install cmake-gui


cmake-gui açılır ve "source code" kısmında dlib-19.13 klasörü içerisinde yer alan "dlib" klasörü seçilir. "build" kısmında ise dlib-19.13 klasörü içerisinde oluşturduğumuz boş klasör seçilir. Derleme bu klasör içerisine gerçekleştirilecektir. Daha sonra aşağıda yer alan "Configure" tuşuna basınız ve açılan pencerede varsayılan (default) yerel derleyicilerin derlemede kullanılmasını seçiniz.



Konfigürasyon bittiğinde aşağıdaki ekran görüntüsündeki gibi bir uyarı alabilirsiniz.


Bu uyarıda BLAS kütüphanesinin sisteminizde yüklü bulunmadığı ve eğer bu kütüphaneyi yüklerseniz kodunuzun daha hızlı çalışacağı uyarısı verilmiş. Bende bu uyarıyı dikkate alarak aşağıdaki kod parçasını çalıştırdım ve sistemime BLAS kütüphanesini kurdum. Ayrıca CUDA kurulumu yapmadıysanız olası göreceğiniz sonuçlar aşağıdaki ekran görüntüsünde çizilen alanlarda belirtilmiştir.


sudo apt-get install libopenblas-dev liblapack-dev


CUDA ve BLAS kurulumu yapılan bir bilgisayarda "Configure" tuşuna basınca aşağıdaki ekran görüntüsüne benzer bir sonuç elde edersiniz.



Adım 5. Daha sonra cmake-gui'de yer alan "Generate" tuşuna basınız.


Adım 6. Son aşamada "build" klasörü içerisinde aşağıdaki kod parçası çalıştırılarak derlemenin/kurulumun tamamlanması beklenir.


sudo make install



Adım 7. Dlib kütüphanesinin derleme işlemi başarı ile bitmiştir.


Bu adımda Qt ile kullanılması anlatılacaktır. Qt'nin Ubuntu 16.04'e kurulumu için önceki yazımı takip edebilirsiniz.
Ubuntu 16.04 için Qt Kurulumu

Sisteminize Qt kurulumu yaptıktan sonra Qt Creator açılır ve yeni proje oluşturulduktan sonra proje dosyasına (.pro uzantılı dosya) dlib kütüphanesinin derlendiği klasörün yolu aşağıdaki gibi tanımlanır.

Kurulum esnasında cuda ve blas ile derleme yapılmadıysa sadece dlib kütüphanesinin derlendiği klasörün yolunu tanımlamamız yeterlidir.

LIBS += -L"/home/eyyup/Downloads/dlib-19.13_blas_cuda/build"
LIBS += -ldlib

Kurulum esnasında CUDA ve BLAS ile derleme yapıldıysa dlib kütüphanesinin derlendiği klasörün yolu ile CUDA ve BLAS kütüphanelerinin yolunu da tanımlamamız gerekmektedir.

LIBS += -L"/home/eyyup/Downloads/dlib-19.13_blas_cuda/build"
LIBS += -ldlib
LIBS += -L"/usr/lib"
LIBS += -lopenblas
LIBS += -lcudnn
LIBS += -L"/usr/local/cuda/lib64"
LIBS += -lcublas
LIBS += -lcudart
LIBS += -lcurand
LIBS += -lcusolver

Qt proje dosyasında (.pro) kütüphane tanımlanırken -L(kütüphane yolu), -l(kütüphane) şeklinde önekleri kullanılmaktadır.

Aşağıdaki video'da CUDA ve BLAS olmadan yapılan kurulum (derleme) işlemi gösterilmektedir.


Aşağıdaki video'da CUDA ve BLAS ile kurulum (derleme) işlemi gösterilmektedir.


Burada Derin Öğrenme çalışmalarında başlagıç seviyesinde kullanılan Mnist, El Yazısı Rakamlardan oluşan veri setini sınıflandıran LeNet örneği çalıştırıldığında intel i7-8700K 6 çekirdekli yeni nesil işlemci de 3429 saniye yani 57 dakika 15 saniye sürmektedir. Aynı kod hiçbir değişiklik yapılmadan NVIDIA GTX 1080 ekran kartı üzerinde çalıştırıldığında 52 saniye sürmektedir. Bu örnekte GPU, CPU'ya göre 65 kat daha hızlı çalışmaktadır.

LeNet CPU (intel i7-8700K) sonuç


LeNet GPU (NVIDIA GTX 1080) sonuç


Artık projelerinizde Dlib kütüphanesini kullanabilirsiniz.

cuDNN Ubuntu 16.04 Kurulumu

cuDNN Ubuntu 16.04 Kurulumu


cuDNN, Derin Öğrenme algoritmalarını GPU-ekran kartı üzerinde çalıştırmak için gerekli bir kütüphanedir. cuDNN kurulumu için NVIDIA'nın hazırlamış olduğu aşağıdaki linkte yer alan dökümanı takip ettim.


cuDNN kurulumuna başlamadan önce sisteminizde

1. NVIDIA grafik sürücüsünün kurulumu
2. CUDA kurulumu

yapılması gerekmektedir.

NVIDIA sürücüsünü kurmak için işletim sisteminize ve sahip olduğunuz ekran kartına uygun sürücüyü aşağıdaki adresten indirebilirsiniz.



Burada doğru sürücüyü bulmak için sahip olduğunuz ekran kartı ve işletim sisteminize göre seçimler yapmalısınız.


NVIDIA sürücü kurulumunun doğru yapılıp yapılmadığını "NVIDIA X Server Settings" programı vasıtasıyla kontrol edebilirsiniz. Aşağıda yer alan ekran görüntüleri bu kontrolleri nasıl yapacağınız konusunda size yol gösterici olacaktır.



CUDA kurulumu için önceki yazımı takip edebilirsiniz.

NVIDIA sürücü kurulumunu ve CUDA kurulumunu başarılı bir şekilde yaptıktan sonra cuDNN kurulumuna geçebilirsiniz.

1. cuDNN indirilmesi

cuDNN indirebilmek için öncelikle NVIDIA Developer Program'a kayıt olmanız gerekmektedir. Kayıt işlemi tamamlandıktan sonra aşağıdaki adımlara geçebilirsiniz.

1.1. NVIDIA cuDNN anasayfasına gidiniz
1.2. DOWNLOAD cuDNN tıklayınız
1.3. Kısa anketi tamamlayın ve 'Submit' e basınız
1.4. Şartlar ve Koşulları kabul edin.
1.5. Yüklemek istediğiniz cuDNN versiyonunu seçiniz.




2. cuDNN kurulması


İndirilen dosyalar aşağıda tanımlanan sırayla kurulur.

2.1. runtime kütüphanenin kurulması

sudo dpkg -i libcudnn7_7.1.4.18-1+cuda9.2_amd64.deb

2.2. developer kütüphanenin kurulumu

sudo dpkg -i libcudnn7-dev_7.1.4.18-1+cuda9.2_amd64.deb

2.3. Örnek kodlar ve cuDNN kütüphanesinin kullanım klavuzunun kurulumu

sudo dpkg -i libcudnn7-doc_7.1.4.18-1+cuda9.2_amd64.deb

3. cuDNN kurulumunun başarılı bir şekilde yapıldığının doğrulanması

Kurulumun başarılı bir şekilde yapılıp yapılmadığını test etmek için "/usr/src/cudnn_samples_v7" klasöründe yer alan mnistCUDNN örneği çalıştırılabilir. Bunun için aşağıdaki adımları takip edebilirsiniz.


3.1. /usr/src/cudnn_samples_v7 klasöründe yer alan cuDNN örneğinin HOME klasörüne kopyalanması

cp -r /usr/src/cudnn_samples_v7/ $HOME



3.2.Kopyalama işleminin yapıldığı HOME/cudnn_samples_v7/mnistCUDNN klasörüne gidilmesi

cd $HOME/cudnn_samples_v7/mnistCUDNN



3.3. mnistCUDNN örneğinin derlenmesi

make clean && make



3.4. mnistCUDNN örneğinin çalıştırılması

./mnistCUDNN



Eğer Test passed! yazısını gördüyseniz, cuDNN Kurulumu başarı ile tamamlanmıştır. Derin öğrenme algoritmalarını ekran kartınız (GPU) üzerinde çalıştırabilirsiniz.

CUDA Ubuntu 16.04 Kurulumu

CUDA Ubuntu 16.04 Kurulumu

İşlemci (CPU) üzerinde çalıştırılan "Derin Öğrenme" algoritmalarının çalışma süresi çok uzun sürmektedir ve Derin Öğrenmenin bu kadar popüler olmasının en önemli sebebi Ekran Kartlarının (GPU) Derin Öğrenme algoritmalarının çalışma süresinin CPU'ya göre çok daha kısa sürmesini sağlayacak şekilde çok gelişmiş tasarımlara sahip olmalarıdır. Derin öğrenme konusunda çalışmayı düşünüyorsanız bu çalışmaları yapabilmek için iyi bir ekran kartına sahip olmanız gerekmektedir. Derin öğrenme çalışmaları için Örnek PC Konfigurasyonu size nasıl bir bilgisayara sahip olmanız gerektiği konusunda fikir verecektir.
Derin Öğrenme algoritmalarını Ekran kartı (GPU) üzerinde çalıştırmak için CUDA kurulumu gerekmektedir. Bu kurulum için NVidia'nın hazırlamış olduğu aşağıdaki linkte yer alan dökümanı takip ettim.


Adım 1. Kurulum Öncesi Kontroller

1.1 Ekran Kartının CUDA Yeteneğinin Kontrolü

Eğer ekran kartınız bu listede yer alıyorsa CUDA yeteneği var demektir

lspci | grep -i nvidia

Yukarıdaki komutu çalıştırdığınız da sistem özelliklerini görmelisiniz eğer herhangi bir sonuç görmüyorsanız PCI donanım veri tabanını güncelleyip tekrar yukarıdaki komutu çalıştırabilirsiniz. (Güncelleme için aşağıdaki komutu çalıştırabilirsniz)

update-pciids


1.2 Desteklenen Linux Versiyonuna Sahip Olduğunuzun Kontrolü

CUDA Geliştirme Araçları sadece Linux'un bazı belirli modellerinde (dağıtımlarında) desteklenmektedir. Aşağıdaki komutu çalıştırın:

uname -m && cat /etc/*release

Aşağıdaki ekran görüntüsüne benzer bir sonuç görmeniz beklenmektedir.


1.3 GCC Derleyicisinin Sisteminize Kurulu Olduğunun Kontrolü

CUDA kullanımı için gcc derleyicisinin kurulu olması gerekmektedir. Aşağıdaki kodu çalıştırarak bilgisayarınızda kurulu olan GCC derleyicisinin versiyonunu öğrenebilirsiniz.

gcc --version


Eğer hata mesajı alıyorsanız gcc derleyicisini kurmanız gerekmektedir.

1.4 Doğru Kernel Başlık (Kernel Header) ve Geliştirme Paketlerinin Sisteminize Kurulu Olduğunun Kontrolü

CUDA sürücülerini kurmadan önce doğru Kernel başlık versiyonlarının ve geliştirme paketlerinin sisteminize kurulu olduğunun manuel olarak kontrol edilmesi gerekmektedir. Aşağıdaki komutu çalıştırarak sisteminizin çalıştığı kernel versiyonunu öğrenebilirsiniz.

uname -r


Şu an sisteminizde çalışan kernel için Kernel başlık ve geliştirme paketlerinin kurulumunu aşağıdaki komutu çalıştırarak yapabilirsiniz.

sudo apt-get install linux-headers-$(uname -r)

Eğer sisteminizde yüklü olan en yeni versiyon ise aşağıdaki gibi bir sonuç alırsınız.


1.5 Kurulum Yönteminin Seçilmesi

CUDA Toolkit 2 farklı yöntemle kurulabilir:

1. distribution specific packages (RPM and Deb packages)
2. distribution-independent package (runfile package)

Genellikle 1. yöntemin kullanılması tavsiye edilmektedir. Bu sebeple kurulumu 1. yöntemi kullanarak gerçekleştireceğiz.

1.6 NVIDIA CUDA Toolkit İndirilmesi

NVIDIA CUDA Toolkit aşağıdaki adresten sisteminize uygun seçimler yapılarak indirilebilir.




Adım 2. Paket Yöneticisi Kurulumu

2.1 Depo Meta-Verilerini Kur

İndirmiş olduğunuz NVIDIA CUDA Toolkit paketini aşağıdaki komutu çalıştırarak kurabilirsiniz.

sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb


2.2 CUDA public GPG key kurulumu

İkinci aşama olarak GPG key kurulumu yapılması gerekmektedir. Zaten aşağıdaki ekran görüntüsünde göreceğiniz gibi GPG key'in kurulması gerektiği belirtilmiştir.

sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub



2.3 Sistemin güncellenmesi

Üçüncü aşama olarak sistemin güncellenmesi gerekmektedir. Aşağıdaki kodu çalıştırarak sistemi güncelleyebilirsiniz

sudo apt-get update

2.4 CUDA Kurulumu

CUDA kurulumunu aşağıdaki kodu çalıştırarak gerçekleştirebilirsiniz.

sudo apt-get install cuda




CUDA yükleme komutunu tekrar çalıştırırsanız aşağıdaki gibi CUDA'nın zaten en yeni versiyonunun yüklü olduğu uyarısını alırsınız (aşağıdaki ekran görüntüsü gibi). Bu uyarı kurulumun başarılı bir şekilde yapıldığını göstermektedir.


CUDA Kurulumu başarı ile tamamlanmıştır.