Haberler

NVIDIA Jetson Nano ve Jetson Xavier NX Karşılaştırması: Teknik Özellikler, Performans Testleri, Konteyner Demo’ları ve Özel Model Çıkarımı

NVIDIA Gömülü Sistemleri ile Güçlendirilmiş Edge AI için En Son Yeni Ürünler

NVIDIA Jetson Nano ve Jetson Xavier NX için Yeni Çıkış

reComputer Jetson serisi, NVIDIA’nın gelişmiş AI gömülü sistemleri ile inşa edilmiş kompakt edge bilgisayarlardır:

Zengin genişletme modülleri, endüstriyel çevre birimleri, termal yönetim ile reComputer, popüler DNN modellerini ve ML çerçevelerini edge’e dağıtarak yüksek performansla çıkarım yaparak, gerçek zamanlı sınıflandırma ve nesne tespiti, poz tahmini, anlamsal segmentasyon ve doğal dil işleme (NLP) gibi görevlerde bir sonraki nesil AI ürününü hızlandırmanıza ve ölçeklendirmenize yardımcı olmaya hazırdır.

Jetson Nano ile geliştiriciler, TAO Toolkit’ten yüksek doğrulukta önceden eğitilmiş modelleri kullanabilir ve DeepStream ile dağıtım yapabilir. Jetson Nano, PeopleNet-ResNet34 için 11 FPS,  DashCamNet-ResNet18 için 19 FPS ve FaceDetect-IR-ResNet18 için 101 FPS elde edebilir. Benchmark detayları NVIDIA®’nin DeepStream SDK web sitesinde bulunabilir.

Jetson Xavier NX ile geliştiriciler, TAO Toolkit’ten yüksek doğrulukta önceden eğitilmiş modelleri kullanabilir ve DeepStream ile dağıtım yapabilir. Jetson Xavier NX, PeopleNet-ResNet34 için 172 FPS,  DashCamNet-ResNet18 için 274 FPS ve FaceDetect-IR-ResNet18 için 1126 FPS elde edebilir. Benchmark detayları NVIDIA®’nin DeepStream SDK web sitesinde bulunabilir.

Deepstream için Jetson serisi benchmark: veri alımından, çözümleme, görüntü işleme ve çıkarıma kadar uçtan uca uygulama performansı

Aşağıdaki makale, Hardware.ai YouTube kanalı üzerinde yayınlanan videonun transkriptidir. Ayrıca Hackster.io üzerinde de yer aldı.

Seeed’de NVIDIA Jetson Xavier NX ve NVIDIA Jetson Nano  fırsatını kaçırmayın!

Bugün NVIDIA’nın yeni bir geliştirme kiti olan Xavier NX‘e yakından bakacağız ve bunu NVIDIA’nın başka bir geliştirme kiti olan Jetson Nano ile karşılaştıracağız. Xavier NX hesaplama modülü 6 Kasım 2019’da duyuruldu, ancak modül ve referans taşıyıcı kartı içeren geliştirme kiti sadece altı ay sonra, 14 Mayıs 2020’de duyuruldu. Bu, Nvidia Jetson Nano ile olan durumun tersidir – o durumda, geliştirme kiti önce geldi ve ardından hesaplama modülü satın alınabilir hale geldi.

Peki, Xavier NX, Jetson Nano ile nasıl karşılaştırılıyor? Fiyat farkı önemli, 99 USD’ye karşı 399 USD veya yaklaşık %400. Jetson Nano’nun uygulamanız için yeterli olmadığını ve bir seviye yukarı çıkmanız gerektiğini bildiğiniz net bir eşik var mı?

Karşılaştırmamıza başlamadan önce, bu iki ürünün farklı hedef gruplara yönelik olduğunu belirtmeliyiz – Nvidia Jetson Nano, yapımcılar ve STEM eğitimi için tasarlanmıştır, oysa Xavier NX daha çok profesyonel ve ticari kullanım için yöneliktir. Nvidia’nın ürün lansmanında yayınladığı örnek uygulamalardan bu çok açıktı – Jetson Nano için kullanıcı dostu defterlerle birlikte Jetbot, Jetson Xavier NX için ise ticari kullanıcılara hitap eden bulut yerel uygulamaların bir demosu vardı. Bu yine de bir karşılaştırma yapılmasını gerektiriyor – Xavier NX’i iki turbo motorlu bir spor araba, Jetson Nano’yu ise daha sıradan bir sedan olarak düşünün. Her zaman en hızlı arabayı almak istemeyiz, elimizde para olsa bile, dikkate alınması gereken birçok başka faktör vardır.

Bu makalede, şunları ele alacağız:

  • Donanım Genel Görünümü
  • Özellikler
  • Benchmarking
  • Bulut Yerel konteyner demosu 

Özel Model Çıkarımı 

Bazen diğer incelemelerde gözden kaçan bu küçük ama oldukça önemli detaylara bakalım.

NVIDIA Jetson Nano ve Jetson Xavier NX Donanım ve Spesifikasyon Karşılaştırması

İki geliştirme kitine yan yana bakalım. Paket açmayı atlayacağım, çünkü kutuyu nasıl açacağınızı biliyorsunuz. Eğer bilmiyorsanız, lütfen aşağıda bir yorum bırakın, yakında başka bir eğitim hazırlayacağım. Öncelikle benzerlikler. Her iki geliştirme kartı da boyut olarak benzer ve modüller tam olarak aynı boyut ve form faktörüne sahip. Bu, geliştiriciler için harika, çünkü geliştirme aşamasında Nano modülünü Xavier NX ile değiştirmek, konektörleri ve taşıyıcı kartın fiziksel tasarımını değiştirmeyi gerektirmeyecek (eğer Jetson Nano Geliştirme Kiti’nin Rev B01’ini kullanıyorlarsa).

Her iki taşıyıcı kartta Gigabit Ethernet Jack, 4 USB 3 portu (Xavier NX için USB 3.1 ve Jetson Nano için 3.0), HDMI portu ve görüntü portları bulunmaktadır.

Şimdi farklılıklara bakalım. Xavier NX geliştirme kiti kartında bir M2 Key E ve bir M2 Key M konektörü bulunmaktadır, M2 Key E yuvası zaten BT/WiFi modülü ile doldurulmuştur. M2 Key M, NVME SSD bağlamak için kullanılabilir. Jetson Nano taşıyıcı kartında yalnızca bir M2 Key E konektörü bulunmaktadır. Burada sahip olduğum Jetson Nano taşıyıcı kartı A02 taşıyıcı kartıdır, Jetson Nano geliştirme kiti ilk piyasaya sürüldüğünde satışa sunulan karttır – B01 Taşıyıcı Kart ile bazı farklılıkları vardır, özellikle B01’in Xavier NX taşıyıcı kartı ile aynı olan iki CSI-2 kamera arayüzü varken, burada gördüğünüz A02 yalnızca bir tane sahiptir.

Xavier NX aktif bir soğutma sistemine sahipken, Jetson Nano yalnızca bir ısı emiciye sahiptir. Bunun nedeni, Xavier’in daha fazla enerji tüketmesidir – geliştirme kiti 5V USB ile güçlendirilemez ve 19V güç kaynağı gerektirir, bu da kutuda dahil edilmiştir. Xavier NX’in referans taşıyıcı kartı, devreleri çalışma yüzeyinizin yüzeyiyle doğrudan temas etmesini önleyen ve iki anteni tutan küçük bir plastik taban ile daha iyi düşünülmüş bir tasarıma sahiptir. Küçük bir detay, ama çok hoş.

Ayrıca blogumuzu kontrol edebilirsiniz Jetson Nano Geliştirme Kitinin Yeni Revizyonu – Artık yeni Jetson Nano Modülünü destekliyor yeni B01 revize taşıyıcı kartının A02 kartından nasıl farklı olduğunu detaylı bir şekilde görmek için.

Özellikler

Şimdi, resmi NVIDIA web sitesinden verileri kullanarak özellikleri hızlıca karşılaştıralım.

Xavier NX’in daha fazla çekirdek ve daha yüksek saat hızına sahip CPU’su ve daha fazla RAM’i (daha hızlı, 25.6GB/s’ye karşı 51.2GB/s) gibi çok belirgin şeylerin yanı sıra, AI Performansı sütunu daha fazla dikkat edilmesi gereken bir alandır. “Aman Tanrım, Xavier NX’in AI performansı Jetson Nano’nun 44 katı” (21/0.472~44) demeden önce, karşılaştırmanın farklı birimlerin TOPS ve TFLOPS arasında olduğunu belirtmek önemlidir.

Bunun nedeni, Xavier NX için NVDLA Motorlarının bu oldukça etkileyici sayıya dahil edilmesidir. Jetson Nano (ve Jetson ailesinin daha eski üyeleri, TX1/TX2) yalnızca ML çıkarımını hızlandırmak için optimize edilmiş bir GPU’ya sahiptir. Öte yandan NVDLA Motorları tamamen farklı bir yapıya sahiptir ve Google TPU/Intel Movidius çiplerine daha çok benzeyen ASIC’ler veya Uygulamaya Özel Entegre Devrelerdir.

Onlar INT8 hassasiyetinde CNN çıkarımını çalıştırmada mükemmel ve bu görevi GPU’lardan daha hızlı ve daha enerji verimli bir şekilde gerçekleştiriyorlar – dezavantajı ise farklı ağ mimarisi desteği söz konusu olduğunda genel amaçlı olmamaları. NVIDIA, GPU’ların tek başına yüksek derecede uzmanlaşmış donanımı geçemeyeceğini fark etti ve yeni modülde hem 48 Tensor Core’a sahip 384 çekirdekli NVIDIA Volta™ GPU hem de özel CNN hızlandırıcıları bulundurarak her iki dünyanın en iyisini almaya karar verdi.

Tensor Core’lar hakkında konuşursak, bunların Nvidia Jetson Nano’nun GPU’sundan eksik olduğunu da görüyoruz. Peki, Tensor core nedir? Bu, tam olarak Tensor core için Google Arama sonuçlarının ilk sayasındaki bir makalenin başlığıdır. CUDA çekirdekleri ile karşılaştırıldığında, CUDA çekirdekleri her hesaplama bazında çalışır, her bir bireysel CUDA çekirdeği GPU’nun her devrinde bir hassas hesaplama gerçekleştirebilir. Sonuç olarak, saat hızı CUDA’nın performansında büyük bir rol oynar, ayrıca karttaki mevcut CUDA çekirdeklerinin sayısı da önemlidir. Öte yandan, Tensor çekirdekleri, her saat döngüsünde bir bütün 4×4 matris işlemi ile hesaplama yapabilir.

Buradaki animasyona bakarak, normal CUDA çekirdeği ve Tensor çekirdeği arasındaki farkı sezgisel olarak anlamaya çalışın.

Karşılaştırma

Peki, bu hızlı ama canlandırıcı yüksek performanslı hesaplama ormanında bir yürüyüş oldu. Eğer benim gibi bir mühendis iseniz, tüm bunların çıkarım performansına nasıl dönüştüğünü bilmek istersiniz. Bu sefer NVIDIA, kolayca indirilebilen ve çalıştırılabilen karşılaştırmalar için özel bir depo oluşturdu, bu kararı alkışlıyorum. Bu nedenle, bu depodaki karşılaştırmaları hem Nvidia Jetson Nano hem de Xavier NX üzerinde çalıştırdım. Beklenildiği gibi sonuçlar, Nvidia Blog makalesindeki sonuçlara çok yakındı.

Dikkat edilmesi gereken bir şey, Xavier NX için toplam FPS’nin iki DLA ve GPU’nun aynı anda çalıştırılmasından elde edilen FPS’nin toplamı olduğudur. Bunu benchmark.py dosyasının içeriğine bakarak bulabilirsiniz.

# Not: GPU, DLA gecikmeleri milisaniye cinsinden ölçülür, FPS = Saniye Başına Kareprint(benchmark_table[['Model Adı', 'DLA0 (ms)', 'DLA1 (ms)', 'FPS']])

Bunu, her cihaz için (Xavier NX için) toplam FPS ve çıkarım süresini yazdıracak şekilde değiştirebilirsiniz.

Konteyner demosu

İkinci test, Jetpack 4.4’te çokça övülen yeni özellikleri kullanacak, “bulut yerel”. Temelde, konteynerleştirme ve orkestrasyonu sunuculardan uç cihazlara getirmekle ilgilidir. Bunu neden yapalım? Gelişimi basitleştirmek için. Konteynerler, bir uygulamayı çalıştırmak için gerekli tüm ortamı içeren kendi kendine yeterli paketlerdir. Konteynerleştirmenin ana satış noktası, güncellemeleri daha kolay hale getirmeleridir – çünkü kendi kendine yeterlidirler, bir paketi güncellemenin tüm sisteminizde sürüm hatalarına neden olacağı konusunda endişelenmenize gerek yoktur. Nvidia, Xavier NX’in yeni konteyner yönetim sistemini ve donanım yeteneklerini sergilemek için bir “müşteri hizmetleri” robotu demosu hazırladı. Ne yazık ki, o demo için 4 konteynerin 3’ü, yalnızca Jetson AGX Xavier veya Jetson Xavier NX üzerinde çalıştırılabilen Jetson AGX Xavier ve Jetson Xavier NX için oluşturulmuş TensorRT motor dosyalarına sahip. Bu nedenle, başka bir konteyneri, Deepstream-L4T’yi indirip deneyeceğiz ve konteyner içinden örnek uygulamayı çalıştıracağız. Örnek uygulamalar zaten önceden derlenmiş ve konteynerler içinde çalıştırılmaya hazırdır. Ne yazık ki, uygulamayı çalıştırdığınız klasörde ilgili yapılandırma dosyasını aramak için kodlanmışlardır, bu da bazı karışıklıklara neden olabilir.

Konteyneri indirmek için

sudo docker pull nvcr.io/nvidia/deepstream-l4t:5.0-dp-20.04-samples

Dış uygulamaların ana bilgisayarın X ekranına bağlanmasına izin verin

xhost +

Bundan sonra konteyneri şu şekilde çalıştırın

sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -w /opt/nvidia/deepstream/deepstream-5.0 -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/deepstream-l4t:5.0-dp-20.04-samples

Sonra uygulama yapılandırma dosyasının bulunduğu klasöre gidin

cd sources/apps/sample_apps/deepstream-test3

Ve test uygulamasını çalıştırın – birden fazla akışta çalıştırmak için dosya adını kopyalayıp yapıştırın:

deepstream-test3-app file:///opt/nvidia/deepstream/deepstream-5.0/samples/streams/sample_720p.mp4

deepstream-apptest3’ü seçeceğiz ve 720p video ile çalıştıracağız. Jetson Nano yalnızca bir video akışını sorunsuz bir şekilde çalıştırabilir, ikinciyi eklediğimizde performans önemli ölçüde düşer. Jetson Xavier için benzer bir tablo görüyoruz, ikinci akışı eklediğimizde kare düşmeye başlıyor.

jetson_stats ile kontrol ettiğimizde, CPU ve GPU yükünün asla yüzde 100’e ulaşmadığını görüyoruz, bu nedenle burada performans darboğazı muhtemelen SD kart okuma hızındadır. 4 konteyneri aynı anda çalıştıran “hizmet robotu” demo uygulamaları için NVME SSD kullanmak gereklidir.

Özel model çıkarımı

Son karşılaştırmamız için, Nvidia’nın sağladığı demoların dışına çıkmayı ve kendi eğittiğimiz bir modeli kullanmayı deneyelim. Sonuçta, bu gerçek performans ve kullanıcı dostu olmanın testidir – elde edebileceğiniz sonuçlar, dikkatlice optimize edilmiş demoların aksine. Biz, çeşitli uç cihazlarda çalıştırılmak üzere modellerin eğitimini ve dönüşümünü basitleştirmek amacıyla Keras tabanlı bir çerçeve olan aXeleRate‘i kullanacağız. NVIDIA’nın model optimizasyon aracı olan TensorRT diğer model dönüşüm araçlarından, örneğin nncase, Google Coral dönüştürücüsünden çok farklıdır. Diğerlerinden farklı olarak, TensorRT ile modeli hedef cihazda optimize etmeniz gerekir, çünkü optimizasyonlar hedef cihazın mimarisine bağlıdır. TensorRT kesinlikle bir videoyu hak ediyor – muhtemelen kendi video serisini, ve ben de yakın gelecekte bir tane yapacağım.

Stanford köpek ırkları veri setinde eğitilmiş NASNetMobile modelini kullanacağız – not defterindeki adımları takip edin, dönüşümü .onnx formatına etkinleştirmek için yapılandırma dosyasını değiştirmeyi unutmayın!

Eğitim tamamlandıktan sonra .onnx dosyasını Jetson’a indirin ve example_scripts/nvidia_jetson/classifier klasöründeki onnx_to_trt.py dosyasını çalıştırın.

onnx_to_trt.py -- onnx (onnx dosyasının yolu) --precision FP32

Bu betik, .onnx modelini hedef cihaz için optimize edilmiş bir model grafiği içeren serileştirilmiş .plan dosyasına dönüştürecektir – bu da demektir ki oluşturulan .plan dosyasını Xavier NX üzerinde çalıştırmak için Jetson Nano’da veya tersi şekilde çalıştırmak mümkün olmayacaktır.

Artık örnek bir video dosyası üzerinde classifier_video.py dosyasını çalıştırabiliriz.

classifier_video.py --model (plan dosyasının yolu) --labels (etiketlerin bulunduğu .txt dosyasının yolu) --source (video dosyasının yolu)

Ayrıca

classifier_video.py --model (plan dosyasının yolu) --labels (etiketlerin bulunduğu .txt dosyasının yolu) --source 0

komutunu kullanarak USB web kamerasından gerçek zamanlı çıkarım yapabilirsiniz.

Jetson Nano, saniyede ortalama 15 kare ve Jetson Xavier, sevimli köpeklerin videosunu ~30 kare/saniye ile işleyebilir.

Sonuç

Sonuç olarak, yeni Nvidia Jetson Xavier NX bir canavar.

Güç tüketimi yüksek, ancak eğer hedefiniz performanssa, bu boyut ve fiyat aralığında alabileceğiniz en iyi modül. Eğer yüksek çözünürlükte birden fazla video akışını işlemek ve ASR/NLP veya başka GPU ile ilgili görevler (örneğin CUDA destekli SLAM) gerçekleştiren bir uygulama geliştiriyorsanız, o zaman derin öğrenme hızlandırıcıları CNN çıkarımını üstlenebilir ve GPU’yu diğer görevler için bırakabilir – bu, eski TX2 veya Jetson Nano’nun yapabileceği bir şey değil. Yapımcılar ve hobi sahipleri için – eğer bunu satın alıyorsanız, bu kadar fazla güce ihtiyaç duyan bir uygulama düşündüğünüzden emin olun ve ayrıca mevcut performans darboğazlarını ortadan kaldırmak için yeterli teknik bilgiye sahip olduğunuzdan emin olun.

Leave a Reply

Your email address will not be published. Required fields are marked *