Otonom Sürüş Sistemleri için GPU neden FPGA'den daha popüler ?


#1

Merhaba,

Derin öğrenme ve görüntü işleme yöntemleri için GPU kullanmak artık işin doğası gibi oldu (en azından öyle bir genel algı var ve ben de buna kapıldım). Derin öğrenmenin kullanımının patlamasındaki en önemli nedenlerinden birinin GPU teknolojisinin çok hızlı gelişmesi ve hesaplama kabiliyetinin artması olduğunu okudum hep. Bu sektörde (otonom sürüş sistemleri) nereye ve hangi araç üreticisine baksam (mercedes, tesla, volvo, baidu vs.) NVIDIA’nın donanımlarını (gpu, drive px2 vs.) kullanarak bir otonom sürüş sistemi geliştirdiklerini gördüm. Çok derinine inmeden basit bir çıkarımla: Nvidia’nın kolay geliştirme ortamları ve tool’ları sunarak zaten hesaplama kabiliyeti yüksek olan gpu’larının kullanımını yaygınlaştırarak bu şirketlerin otonom sürüş sistemi inşa etmesine kolaylık sağladığı düşüncesine vardım.

Ancak, Tesla’nın yakın zamanda NVIDIA’nın Drive PX2 platformunu terk ederek kendi geliştirdikleri Application Specific Integrated Circuit (ASIC) platformuna geçtiğini okudum. Buradan FPGA ve DSP gibi donanımlardan haberdar oldum derken, FPGA’in çok güçlü, verimli ve yetenekli olduğunu gördüm. Hatta otonom sürüş için de zaten kullanıldığını ve Intel’in bu iş için büyük bir çaba sarf ettiğine dair bilgi sahibi oldum. Genel fikri verdiğimi düşünerek sorularımı soruyorum:

  1. FPGA gibi donanımlar bu kadar güçlüyken, GPU neden daha popüler olarak çoğunluğun esas odağı oldu ve derin öğrenme ve otonom sistemlerin gelişmesi FPGA ile değil de GPU ile arttı ?
  2. GPU gerçekten fiyat-performans olarak en iyi çözümü mü sunuyor ?
  1. soruma ithafen: YOLO algoritmasını Jetson TX2 ile 3 fps’te, GTX 1070 ile 36 fps’te çalıştırabiliyorum. Sadece bir DNN algoritması değil de 4 farklı DNN algoritması çalıştıracaksam, sayıca daha fazla veya daha güçlü GPU’lara (titan xp vs.) ihtiyacım var demektir. Bu da fiyat açısından çok yüksek bir maliyete neden olacak. Bu sebeplerden dolayı, 3. seviyede bir otonom sürüş sistemi için GPU tabanlı çalışmanın mantıklı olup olmadığının kararını vermekte zorlanıyorum. Konu hakkında tecrübe ve bilgilerinizden yararlanmak isterim.

#2

Bence ilk sorunun cevabı geliştirme kolaylığı ve maliyet. FPGA programlama ile ilgilendiysen ne kadar “zor” olduğunu görmüşsündür. Bir projeyi FPGA üzerinde kurgulamak oldukça zor bir şey. Nvidia ise burada sürekli olarak geliştiriciler ile birlikte oldu ve neredeyse tüm programlama dillerine destek veren kütüphaneler gelişti, böylelikle hali hazırda CPU üzerinde çalışan projelerin GPU ya geçmesi oldukça kolaylaştı. Bir taraftanda sürekli büyüyen kurumsal tarafı var, GPU Cloud. GPU destekli bir makine ayağa kaldırmak AWS, Azure, Google, NVidia … gibi servisler de çok kolay ve maliyeti de FPGA bir donanıma göre oldukça avantajlı. Üstüne üstelik NVidia araçlar için bir çok donanım geliştiriyor sadece GPU değil kamera ve sensörler ile birlikte neredeyse bir set satıyor bunun yanında kurumsal firmaların en sevdiği şey olan kurumsal destek paketleri de var, bunu sağlayan çok az FPGA üreticisi var.