Darknet Framework Konfigürasyon Aşamaları

Projenizin kurulum aşamasında ilk olarak Darknet framework’ünün hangi işletim sistemi ile daha verimli ve düzgün çalışılacağını tespit etmeniz gerekir. Projeler de çok yönlülüğü, gücü, güvenliği ve testlerdeki hızı nedeniyle ben Linux platformu üzerinden devam etme kararı aldım. Linux platformunda yaptığım darknet framework konfigürasyonundan sizlere bahsetmek istiyorum.
Ubuntu için İzlenecek Adımlar;
- Github reposu bilgisayarınıza indirmelisiniz.

Github üzerinden üst satırda görüldüğü gibi Darknet deposu git ile klonlanır ve cd ile darknet klasörü içerisine girilir.
2. Ubuntu ile OpenCV Kurulumu
Eğer bilgisayarız üzerinde CUDA destekli Nvidia ekran kartı yer alıyorsa ve aynı zamanda Darknet GPU üzerinde çalıştırılacak iseniz Makefile dosyasında ilk satırdaki GPU değerini 1 olarak değiştirilmelisiniz. Darknet’in GPU üzerinde çalıştırılmasının sebebi yüksek FPS değeri almayı amaçlaması ve beraberinde daha hızlı çalışma imkanına olanak sağlayacak olmasıdır.
GPU=1
Darknet’i GPU ile derlenmesi gerekiyorsa bilgisayarda CUDA’ nın en az 8. versiyonu kurulu olması gerekir.
i. İlk olarak gerekli olan paketleri yükleyelim.

ii. İkinci aşamada ise zorunlu olan paketleri yükleyelim.

iii. Son aşamada ise opsiyonel paketleri yükleyelim.

3. OpenCV Kaynak Kodlarının İndirilmesi:
i. Kaynakları down klasörürün altına indirelim sonra da OpenCV github deposunda yer alan en güncel stabil versiyonu git ile bilgisayara indirelim.

ii. Eğer OpenCV ekstra paketlerine ihtiyacınız var ise aynı şekilde git ile indirelim.

iii. OpenCV’ yi derlemeden önce indirdiğimiz opencv klasörü altına geçici olarak “release” adında bir klasör oluşturalım.

iv. Derleme işleminden önce OpenCV’ yi nasıl yapılandıracağımızı belirleyelim.

Son olarak kurulumda yer alan -j8 parametresi opsiyoneldir. Sadece make komutunun çalışması çok uzun sürüyor ve paralel olarak birçok çekirdek ile çalıştırmak istiyorsak çekirdek sayısına göre ekleyelim.

Bu işlemler sonucunda OpenCV kaynak kodlarının indirilmesini başarıyla tamamlıyoruz.
4. NVIDIA Ekran Kartı Kurulumu
Ubuntu kurulumunda ekran kartları için olan gerekli açık kaynak sürücüler beraberinde gelir ve kullanımda olurlar. Fakat bu açık kaynak sürücüler resmi olmayan sürümleridir ve ekran kartı firmaları tarafından paylaşılmamaktadır. Tamamen tersine mühendislik kullanılarak açık kaynak yazılım dünyasına gönül vermiş kişiler tarafından oluşturulmaktadır. Bu sürücüler 3 boyutlu oyun, 3 boyutlu yazılımların çalışabilmesi ve aynı zamanda bilgisayardaki ekran kartından GPU anlamında verimli bir şekilde yararlanabilmek için yeterli değildirler. Bu nedenle ekran kartının tüm özelliklerinden yararlanabilmek için ekran kartı firmasının kendi sitesinde paylaştığı kapalı kaynak kodları kodlu resmi dağıtımları yani sahipli yazılımları kullanılması gerekmektedir. Bunun için internetten herhangi bir sürüm veya yazılım aramanıza gerek yoktur. Aşağıdaki adımlar ile resmi ekran kartı sürücülerini temin edebiliriz.
Uyarı: Ekran kartı sürücülerinde değişiklik yapılması masaüstünün açılmamasına sebebiyet verebilir eğer resmi kapalı kaynak yani sahipli bir ekran kartı yazılımını yükledikten sonra masaüstünüze gelmez ise kapalı kaynaktan açık kaynak ekran kartı sürücüsüne geri dönüş yapılması gerekir.
Aşağıda yer alan anlatım bizim bilgisayarlarımızda NVIDIA ekran kartları olması sebebiyle bu yönde ilerlememize sebep olacaktır.
NVIDIA resmi sürücülerini kapalı kaynak olarak yayınlamaktadır. Fakat standart bir Ubuntu kurulumunda dahili olarak gelen açık kaynak resmi olmayan “Nouveau” isimli bir açık kaynak sürücü paketi yer almaktadır. Ancak bu çoğu zaman ekran kartından yeterli verimi almamızı sağlamaz bu sebeple tam performanslı çalışabilmesi için ekran kartı üreticisinin önerdiği ve yayınladığı kapalı kaynak kodlu sürücü paketlerini kullanırız.

Ubuntu üzerinde komutunu kullanarak cihazın ekran kartı sorgulamasını gerçekleştirebiliriz, cihazımızda dahili olarak Intel ve harici olarak NVIDIA ekran kartları bulunmaktadır.
Intel ekran kartını kullanabilmek veya tam verim alabilmek için herhangi bir işlem yapmamıza gerek yoktur. Bunun sebebi zaten Intel, ekran kartı sürücülerini Ubuntu ve diğer dağıtımlar ile paylaşmaktadır.
Cihazda yer alan ekran kartları bilgisi komutunu yazdığımızda gördüğünüz üzere iki ekran kartı yer almaktadır. Eğer sizde de durum bu şekilde ise cihazınızda çift ekran kartı yer almakta ve bilgisayarınızda “Nvidia Optimus” özelliği bulunmaktadır.
Nvidia Optimus, özelliği bilgisayarımızda biri dahili Intel, diğeri harici NVIDIA olmak üzere iki ekran kartı bulunduğu anlamına gelir. Bilgisayarımızda yaptığımız işlemler sırasında yüksek performansa ihtiyaç duyulmuyorsa Intel ekran kartı kullanırız, eğer 3 boyutlu oyun veya yüksek performans gerektiren işler yapılıyorsa Nvidia ekran kartı kullanılır. Çift ekran kartı kullanmamızın temel amacı pil ömründen tasarruf sağlamamızdır.
Nvidia Optimus, normalde Windows’ta kullanıcının müdahalesi olmadan Nvidia ve Intel kartları arasında ihtiyaca göre otomatik geçiş yapmamızı sağlar. Ancak Nvidia, Linux’ta Optimus işlevini tam olarak desteklemediği için kartlar arasındaki geçişi manuel olarak yapmamız gerekir.
Cihazdaki harici ekran kartı olan NVIDIA GeForce 940MX için gerekli kapalı kaynak sürücüleri kurulumuna geçelim.

Bunun için Ubuntu da yer alan “Yazılım ve Güncellemeler” aracını çalıştırıyoruz ve “Ek Sürücüler” sekmesini geçiş yapıyoruz. Sonrasında alternatif sürücü paketlerinin listelenmesi için birkaç saniye bekleyelim. Burada ekran kartı versiyon numarasına uygun sürücü seçeneğini işaretleyip “Değişiklikleri Uygula” seçeneğine tıklıyoruz, ardından bilgisayarınızı yeniden başlatalım.
Ek sürücüler sekmesindeki açılan pencere içinde “nouveau” kelimesinin geçtiği satırdaki sürücü, açık kaynak sürücü anlamına gelir yani sistemin ilk kurulumu ile birlikte ön tanımlı gelen, kullanımda olan sürücüdür. Satırlarda “sahipli” kelimesinin geçtiği sürücüler ise ekran kartı firmaları tarafından paylaşılan resmi sürücü paketleridir. Resmi sürücü paketleri adında yazılı olan versiyon numarası aralıklarını inceleyelim, kartımızın versiyon numarasına uygun aralıktaki sürücü paketini seçmemiz gerekiyor. “legacy” kelimesinin geçtiği satır ise genel olarak Nvidia’nın çok eski ekran kartlarına uygun sürücüleri anlamına gelir.
Bilgisayarınızda çift kart olarak Intel ve Nvidia var ise Intel kartı için herhangi bir şey yapmanıza gerek yoktur, çünkü resmi Intel sürücüleri Ubuntu kurulumu ile birlikte yüklü gelir.
Sahipli Nvidia sürücüsünü işaretleyip bilgisayarınızı yeniden başlattıktan sonra Nvidia ekran kartının kurulumu gerçekleşecektir. Ubuntu etkinliklerde “Nvidia Settings” aracını aratıp çalıştıralım. Bu araç Nvidia tarafından sunulan bir yazılımdır ve sahipli Nvidia ekran kartı sürücünün kurulumu sırasında onunla birlikte otomatik olarak kurulur.

Nvidia Settings aracında “PRIME Profiles” bölümünü kullanarak istediğimiz zaman Intel ile Nvidia kartları arasında geçiş yapılabiliriz. Ancak yaptığımız değişikliğin uygulanabilmesi için kullanıcı oturumunuzu kapatıp yeniden giriş yapmamız gerekmektedir.
5. CUDA (Cuda Toolkit) Kurulumu

Yukarıda gördüğünüz üzere güncel CUDA sürümünü download buttonuna tıklayarak indirebilirsiniz. Aynı zamanda CUDA Toolkit 10.0 kurulumu gerçekleştireceğimiz için “Legacy Releases” kısmından yani CUDA 10.0 sayfasına giriyoruz. Buradan aşağıdaki seçimleri gerçekleştirip cuda kurulum dosyasını indiriyoruz.
[ cuda_10.0.130_410.48_linux.run ve cuda_10.0.130.1_linux.run (Patch 1)]
Seçmemiz Gerekenler:
Operating System: Linux54, Architecture: x86_64, Distribution: Ubuntu, Version: 18.04, Installer Type: runfile(local)

Şimdi ise CUDA kurulumuna geçelim. Terminalde iken:

Yukarıda yer alan komutu yazdıktan sonra kurulumu tamamlarız ve devamında CUDA dizinini /home dizini altındaki sistem dosyasına ekleyelim.

.basharc dosyası açtıktan sonra aşağıdaki satırlar ekleyelim.
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export
LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

İşlem tamamlandıktan sonra CUDA kurulumunu aşağıdaki komut ile kontrol edelim.

6. cuDNN (CUDA Deep Neural Network Library) Kurulumu
NVidia Cuda Toolkit kurulumunu tamamlandıktan sonra NVidia cuDNN için ;

buradan Login/Join olunmalıdır. Sonrasında;

Yukarıda yer alan sözleşmeyi kabul ederek güncel cuDNN versiyonlarını listelenir. cuDNN v7.6.0 versiyonu için OS tipini, mimarisi ve versiyonunu seçerek kurulumu dosyası indirelim.

Bu sayfa üzerinden Download cuDNN v7.6.1 (June 24, 2019), for CUDA 10.0 altında yer alan “cuDNN Library for Linux” tıklayalım, sonrasında cuDNN 7.6.1 versiyonunu indirelim. [ cudnn-10.0-linux-x64-v7.6.2.24.tgz ] sıkıştırılmış arşiv dosyasını aşağıda yer aldığı gibi açalım.

Ardından aynı dizinde iken:

Yukarıda yer alan komutları çalıştırarak cuDNN kurulumunu tamamlamış olduk.
Kurulum aşamalarının son kısmı olan darknet framework kısmını daha ayrıntılı bir şekilde diğer bir yazımda bahsetmek istiyorum. Böylelikle bu yazıyla birlikte Linux platformu üzerinden yapmış olduğum darknet framework konfigürasyon aşamalarını görmüş olduk.