Anasayfa / Genel bir bakış / Yapay Zeka Uygulama Geliştirme Kartı: NVIDIA JETSON NANO-1

Yapay Zeka Uygulama Geliştirme Kartı: NVIDIA JETSON NANO-1

Herkese merhabalar. Veri Bilimi Okulu ailesine yeni katılmış bir yazar olarak ilk yazımı yazıyorum. Bu yazı aslında bir serinin ilk bölümü. Bu seride NVIDIA üreticilerinin geliştirmiş oldukları NVIDIA Jetson Nano geliştirme kartını siz okurlara tanıtacağım.

Tanıtıma başlamadan önce birçok yazarın aksine neden kurulum ile başlamadığımı sizlere anlatmak istiyorum. Bir proje yaparken projenin tamamlanması haricinde birçok etken göz önüne alınır. Mesela; verim, maliyet, performans durumları gibi. Geliştirme kartı kullananlar içinde bu durumlar geçerlidir. Proje yürütücüleri geliştirme kartı seçerken kartın avantajları, dezavantajları, desteklediği yazılım programları, donanım özellikleri gibi durumları göz önüne alarak geliştirme kartlarını seçerler. Bu sebeplerden dolayı bu bölümde NVIDIA Jetson Nano geliştirme kartını, avantajlarını, dezavantajlarını ve teknik özelliklerini anlatacağım.

Bu yazının sonunda NVIDIA Jetson Nano kartını neden kullanmamız gerektiğini veya hangi alanlar için daha verimli olduğunu anlamış olacaksınız.

Giriş kısmını bitirdik şimdi başlıyoruz.

NVIDIA Jetson Nano Nedir ?

NVIDIA Jetson Nano,  NVIDIA şirketinin geliştirmiş olduğu geliştirme kartıdır. NVIDIA’ nın diğer geliştirme kartları olan NVIDIA TX1, TX2 ve XAVIER kartlarına göre boyut olarak daha küçük, donanım özellikleri olarak daha kısıtlı olmasından dolayı Nano modeli olarak adlandırılmaktadır.

şekil 1: NVIDIA geliştirme kartları

Kaynak: https://www.fastcompression.com/blog/jetson-benchmark-comparison.htm

NVIDIA Jetson Nano geliştirme kartı, modern yapay zeka uygulamalarını  küçük  boyutta,  yüksek güçte ve düşük maliyette çalıştırmak için hesaplama performansını sunar. Yapay zeka uygulama geliştiricileri   artık görüntü sınıflandırma, nesne algılama, segmentasyon ve ses işleme gibi uygulamaları, yüksek maliyet ve yüksek donanımsal özelliklere gerek duymadan Jetson Nano geliştirme kartı ile yapabilmektedir ve sadece bu işlemleri yaparken yalnızca 5 watt güç harcamaktadır. NVIDIA firması ekran kartı, görüntü işleme donanımları vb. ile bu donanımların yazılım ve sürücülerini üretiyor. Donanım özellikleri ile yüksek donanım maliyeti gerektiren uygulamaları benzer geliştirme kartlarına göre çok daha verimli çalıştırmaktadır. Örneğin günümüzde popülerliği artan yapay zeka ve yapay zeka uygulamalarını kullanmak için yüksek donanımsal maliyetlere ihtiyaç duyulmaktadır. NVIDIA Jetson Nano geliştirme kartı yazılımsal optimizasyonlar ile donanımsal özellikleri benzer olan diğer geliştirme kartlarına göre özellikle yapay zeka uygulamaları alanlarında daha fazla performans sağlamaktadır.

şekil 2: Derin öğrenme algoritmalarında Jetson Nano performansı

Kaynak: https://devblogs.nvidia.com/jetson-nano-ai-computing/

Örneğin; Jetson Nano, modern yapay zeka algoritmalarını hızlı bir şekilde çalıştırmak için 472 GFLOP sunar. Bu nedenle derin öğrenmede kullanılan birden çok sinir ağını paralel olarak çalıştırıp yüksek çözünürlüklü birkaç sensörü eş zamanlı olarak işleyerek uygulamalar üretebiliriz.

NVIDIA Jetson Nano geliştirme kartını genel hatlarıyla bahsettik. Şimdi ise daha detaylı olarak bahsedeceğiz.

Donanımsal Özellikleri

şekil 3: NVIDIA Jetson Nano kart özellikleri

Kaynak: https://eu.mouser.com/new/seeed-studio/seeed-nvidia-jetson-nano-dev-kit/

NVIDIA Jetson kartının ön kısmında micro USB ve power jack girişleri bulunmaktadır. Bu girişler sayesinde geliştirme kartımıza enerji verebiliyoruz. Ayrıca micro USB girişine bilgisayarımızı bağlayıp monitör gibi dış birimlere gerek duymadan kullanabiliyoruz. 1 adet HDMI girişi bulunmaktadır. Bu giriş ile geliştirme kartımızı ekrana bağlayabiliyoruz ve bu durumdan dolayı NVIDIA firması Jetson Nano kartımızı bilgisayar gibi kullanabilme imkanı sunmaktadır. Bir başka giriş olarak Ethernet girişi bulunmaktadır. NVIDIA Jetson Nano geliştirme kartında WIFI modulü bulunmamaktadır Bu durumdan dolayı geliştirme kartımızı internete bağlamak için sadece Ethernet girişini kullanabiliyoruz. Eğer WIFI ile bağlanmak istiyorsak Jetson Nano haricinde WIFI modulü almamız gerekmektedir. Son olarak 4 tane USB 3.0 girişi bulunmaktadır. USB giriş sayısı diğer geliştirme kartlarına göre fazla olmasından dolayı projelerimizde avantaj sağlamaktadır.

Jetson Nano kartında yüksek güç gerektiren yani donanımı zorlayacak işlemler yapılabilmektedir ve bu işlemleri yaparken geliştirme kartında sıcaklık seviyesi yükselmekte ve bu durumdan dolayı geliştirme kartında donma, yavaşlama gibi sorunlar oluşabilmektedir. NVIDIA üreticileri bu problemden dolayı Jetson Nano geliştirme kartına soğutucu modül koydular ve bu özellik ile yüksek sıcaklık değerleri yüzünden verimin düşmesi sorununu ortadan kaldırdılar. Son olarak soğutucu modül altında M.2 portu bulunmaktadır. Bu porta WIFI modulü ekleyebilmekte ve böylece geliştirme kartımızı WIFI ile internete bağlayabilmekteyiz.

Şekil 4: Heatsink (Soğutucu)

Diğer bir özellik olarak NVIDIA Jetson Nano geliştirme kartımızın üzerinde, robotik projeler yapabilmemiz için GPIO (General Purpose Input Output) pinleri bulunmaktadır. NVIDIA Jetson Nano kartının üzerinde 40 tane GPIO pini bulunmaktadır. Bu pinlerde 2 tane 5 volt girişi (vcc), 2 tane 3.3 volt girişi 8 tane toprak (GND) girişi bulunmaktadır. Aynı zamanda Jetson Nano geliştirme kartı haberleşme pinlerine sahiptir ve bu haberleşme pinleri ile diğer geliştirme kartları, mikrodenetleyiciler, veya sistemler ile haberleşme yapabilmekteyiz. Bu sayede Jetson Nano geliştirme kartı ile endüstriyel projeler yapabilme imkanımız bulunmaktadır. Sonuç olarak pin sayısı robotik projelerimiz için oldukça yeterlidir.

GPIO pinleri sayesinde sensörleri geliştirme kartımıza takarak sensörlerden gelen verileri okuyabilir ve komut verebiliriz. Bu sayede Jetson Nano geliştirme kartımız ile robotik projeler yapabilmekteyiz. Aynı zamanda haberleşme pinleri bulunmasindan dolayı haberleşme protokollerini projelerimize uygulayabilmekteyiz.

Şekil 5: Jetson Nano GPIO Şeması

Kaynak: http://www.waveshare.net/study/article-888-1.html

Şimdiye kadar NVIDIA Jetson Nano geliştirme kartı üzerinde bulunan giriş ve çıkış modüllerinden, pinlerinden bahsettik.

Şimdi ise Jetson Nano kartının donanımsal sistem özelliklerinden bahsedeceğiz.

Şekil 6: Jetson Nano donanım özellikleri

Kaynak: https://www.nvidia.com

GPU

GPU kavramının tanımı; bilgisayar üzerinde görüntülenmekte olan yazı ve grafiklerin oluşturulması sırasında ekran ve işlemci arasında görev yapmakta olan dönüştürücülerdir. GPU; her bir piksel için ne yapılacağının kararını vermektedir.

Şekil 7: GPU VS CPU performansı

Kaynak: https://www.nextplatform.com/2017/05/16/embiggening-bite-gpus-take-datacenter-compute/

Günümüzde kullanılan yapay zeka uygulamaları için işlemciler zorlanmaktadır. Bu durumdan dolayı model eğitimleri yavaşlamaktadır. Örneğin; görüntü işleme ile nesne tespiti yapılan bir projede, model eğitimi uzun sürmektedir. Model eğitildikten sonra kameradan alınan anlık görüntülerde milisaniyeler süresinde yüksek matematiksel işlemler yapılmaktadır. Bu matematiksel işlemlerin performansını, kullandığımız yazılım ve donanım olumlu veya olumsuz şekilde etkilemektedir. Düşük donanım kullanıldığında düşük FPS (Frame Per Second) değerleri alınacaktır. Bu problemden dolayı oluşturduğumuz proje gerçek hayatta kullanılamayacaktır. Bu sorundan dolayı NVIDIA firması Jetson Nano geliştirme kartına GPU donanımı koyarak aynı anda GPU da bulunan çekirdekler paralel çalışarak yüksek matematiksel işlemler yapılabilmektedir.

Şekil 8: MAXWELL GPU mimarisi

Kaynak: https://www.techspot.com/news/59292-nvidia-announces-tegra-x1.html

CPU

Merkezi işlem birimi olarak adlandırılan ve terminolojik kısaltması CPU olan işlemciler, milyonlarca transistörün silikon bir çip üzerinde birleştirilmesi ile meydana gelmektedir.

Aritmetik ve mantıksal işlem yapma yeteneğine sahip olan işlemciler, kısaca bilgisayarların verileri işleyen ve yazılım komutlarını gerçekleştiren bölümü olarak ifade edilebilir. NVIDIA Jetson Nano geliştirme kartı CPU’da ARM mimarisini kullanmaktadır. Verimliliği yüksek olmasından ve maliyeti düşük olmasından dolayı tablet, telefon vb. elektronik aletlerde kullanılmaktadır. Diger geliştirme kartlarına göre 1.43 GHz CPU yüksek hız değerinden dolayı daha stabil çalışmakta ve işlem hızı daha yüksek olmaktadır. Dolayısıyla diğer geliştirme kartlarına göre daha fazla avantaj sunmaktadır.

Bellek

Rastgele erişimli hafıza mikroişlemcili sistemlerde kullanılan bir tür veri deposudur. RAM; bilgisayar, ekran kartı ve birçok mikroişlemci modülünün içinde daimi olarak yer alan bir parçadır. Bilgisayarlar genellikle o an üzerinde çalıştıkları programlar ve işlemlerle ilgili bilgileri RAM diye adlandırılan bu hafıza bölümünde tutarlar.

NVIDIA Jetson Nano 4 GB RAM kullanmaktadır. Bu sayede aynı anda birden fazla işlem yapabilmekte ve diğer geliştirme kartlarına göre donma veya yavaşlama sorunu yaşamamaktadır.

Yazılımsal Özellikleri

NVIDIA firması ürettiği ekran kartları gibi donanımları daha dengeli ve optimize kullanılması için yazılım hizmeti sunmaktadır. Bu yazılım programları, uygulamaları, sürücüleri sayesinde daha verimli hale gelmektedir.

NVIDIA firması Jetson Nano kartını iki türlü kullanma seçeneği sağlamaktadır. Bunlar:

  • Linux tabanlı Ubuntu arayüzü ile
  • Bilgisayara bağlayıp Jupyter Notebook IDLE ile kullanmak

Bu iki seçenek ile,  geliştirme kartınızı ekrana bağlayıp Ubuntu arayüzü ile işlem yapıp projelerinizi geliştirebilirsiniz veya bilgisayar kullanarak Jupyter Notebook IDLE üzerinden işlem yapabiliriz.

Diğer geliştirme kartlarından farklı olarak iki seçenek sunması ekipman maliyetini azaltmaktadır ve bu da Jetson ailesinin en önemli avantajlarından biridir. Ayrıca IDLE ve arayüz sistemleri NVIDIA geliştiricileri tarafından optimize edildiği için verim ve optimizasyon seviyesi yüksek olmaktadır.

NVIDIA Jetson Nano geliştirme kartına yazılım sistemi yüklerken iki seçenek sunmaktadır. Bunlar:

  • Jetpack SDK
  • DeepStream SDK

şimdi bu iki sistemi açıklayacağız.

Jetpack SDK

NVIDIA JetPack SDK, yapay zeka uygulamaları oluşturmak için en kapsamlı uygulamalardan biridir. Jetson Nano geliştirme kartını en yeni işletim sistemi görüntüsü ile seçebilir, hem  ana bilgisayar hem de geliştirme kartı  için geliştirici araçları yükleyebiliir ve geliştirme ortamınızı başlatmak için gereken kitaplıkları ve API’leri, yükleyebilirsiniz.

DeepStream SDK

NVIDIA’nın DeepStream SDK’sı, yapay zeka tabanlı video ve görüntü algılamanın yanı sıra çoklu sensör işleme için eksiksiz bir akış analitiği araç seti sunar. DeepStream, pikselleri ve sensör verilerini harekete geçirilebilir iç görülere dönüştürmek için hizmetler ve çözümler sunabilir.

Yukarıdakı iki yazılım sayesinde yapay zeka ve görüntü işleme uygulamalarını yapabilir ve robotik projelerinize aktarabilirsiniz. NVIDIA Jetson Nano kartının yazılım özellikleri burada bitiyor. Serinin sonraki bölümlerinde daha detaylı şekilde uygulamalar üzerinde açıklamış olacağım.

NVIDIA Jetson Nano serimizin ilk bölümünün sonuna geldik. Bu bölümde NVIDIA Jetson Nano kartını donanımsal ve yazılımsal olarak tanımış olduk.

Serimizin ikinci bölümünde NVIDIA Jetson Nano geliştirme kartının kurulum aşamasını anlatacağım.

Görüşmek dileğiyle.

Kaynakça

https://www.nvidia.com/tr-tr/autonomous-machines/embedded-systems/jetson-nano/

https://developer.nvidia.com/embedded-computing

https://elinux.org/Jetson_Nano

Hakkında Abdullah Enes Doruk

Bursa Teknik Üniversitesi Elektrik Elektronik Mühendisliği Bölümü öğrencisi. İlgilendiği alanlar; Görüntü işleme, Sürücüsüz Araçlar, Derin Öğrenme. Abdullah Enes Doruk

GÖZ ATMAK İSTEYEBİLİRSİNİZ

Natural Language Toolkit(NLTK)

Doğal Dil İşleme kütüphanesi olan Natural Language Toolkit(NLTK)'i ve en sık kullanılan modüllerinden bahsedip Pyhthon'da uygulamalarını gerçekleştirdim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir