Gerçek zamanlı, yüksek çözünürlüklü vizyon sistemlerinin sürekli genişlemesi, geleneksel işlemcileri mimari sınırlarına itiyor. Özerk araçlar, cerrahi robotlar ve endüstriyel denetim şimdi veri hızlarında daha kötüleştiren bir şişe veri hızlarını kullanarak, genel amaçlı CPU'ları ve hatta GPU'ları (FPGA) bu konuyu katı güç bütçeleri içinde kesintiye uğratmak için mücadele etmek için mücadele eden bir sistem haline getiren, veri işlemleyicisi ile paralel olarak, veri analizi yapmak yerine, veri akışlarını tedavi etmek için karmaşık hale getirmekten ziyade, fiziksel bir veri hattı oluşturmak.

Spasal: Hesaplama Temel Değiştir

Vizyon görevleri için bir FPGA'nın birincil avantajı, uzay dönüşümleri için bir tane uygulama yeteneğidir. Bir sinir ağının hafızadan gelen talimatları ve verileri getirme yerine, mantık kendisi belirli bir kanal aracılığıyla akışlar halindeki işlemleri gerçekleştirir. FPGA kumaşına giren tek bir piksel aynı anda birden fazla işleme yollarına girebilir - bir tane renk alanı dönüştürme, diğeri de doğrusal olmayan bir ağ için, bu da zamanlayıcı bir paralellik sağlar.

Memory Wall'u özel Hierarchies ile geri getir

Memory bandajı genellikle bilgisayar vizyonundaki sınırlı faktördür. 60 fps'de tek bir 4K çerçeve, yaklaşık 12 GB / ham piksel verileri işleme gerektirir. Konvansiyonel işlemciler, kayıt ve kapalı DRAM'a güvenmektedir, tüm işlem çekirdekleri boyunca paylaşılan FPGA'ler bu sorunu iki açıdan da genişletebilir. İlk olarak, yerel veri işleme elemanlarını destekleyerek, FIFO'ları kullanarak yapılandırılabilir ve sabitleyicileri azaltılabilir.

Modern Vizyon Boru Hattını FPGA Fabric'e Haritalayın

Tipik bir gömülü görme sistemi birkaç farklı aşamaya neden olabilir, her biri farklı hesaplama ve hafıza gereksinimleri ile. FPGAs bu aşamalar tek bir cihaza entegre edildiğinde, geç kalmış ve güç ayrık cipsin yükünü ortadan kaldırır.

Sensör Interface ve Image Signal Processing

Bir piksel yolculuğu sensörde başlar. FPGAs, MIPI CSI-2, LVDS ve SLVS-EC. Direkt sensör eki, genellikle belirli bir köprü çipi için ihtiyaç duyar.Bir kez yakalanan, ham Bayer verileri bir Görüntü Signal Processor (ISP) boru hattı aracılığıyla işlenir -doks-uygunlu erişim sağlar ve en az ölçeklendirme ile yapılır.

Donanım-Accelerated Preprocessing

Standart ISS görevlerinin ötesinde, vizyon sistemleri genellikle geometrik dönüşüm gerektirir (örneğin, alıntı, transformasyon, lens düzeltmesi) ve piksel-bilite işlemleri (histogram eşitleme, eşleme). Bunlar, yüksek seviyeli karar mantığına veya ağ iletişimine odaklanmak için doğrudan bir ARM çekirdeğine izin vermek için utanç verici bir işlemdir.

Deep Neural Network Inference

Modern vizyonun özü, DSP48 bloklarını AMD/Xilinx cihazlarını veya agresif ölçümleme modellerini kullanarak derin bir öğrenmedir.A convolution katmanı, INT4 veya çiftleştirilmiş formatların en üst üstelenmesi ve en aza indirmesi için haritalanmıştır.(MAC)

Post-Processing and Control Logic

İnference, kutular, sınıf puanları ve segmentasyon maskeleri, standart olmayan bir baskı (NMS) ve algoritmaları takip etmek için işlenir. Bu karar odaklı görevler genellikle bir işlemciye uygun olarak kullanılır. Sistem yoğun akış operasyonlarında (SoC) FPGA, bu işlem sertleştirilmiş çekirdeklerde veya bir RISC-V anlık işlemcisi gibi yumuşak çekirdekli bir işlemcide.

Yüksek-Level Synthesis: Verimliliksiz Verimlilik

FPGA kabul edilmesi bariyeri tarihsel olarak, C++, SystemC veya OpenCL gibi donanım tanımlama dillerinin zorluğu olmuştur ve bunları doğrudan donanıma dönüştürmektedir.

Anahtar HLS Optimizasyonları Vizyon Anahtarlı

Etkili HLS kodu yazmak, veri akışına boru hattına uygun bir uygulamadan bir geçiş gerektirir. Üç pragmas vizyon hızlandırması için gereklidir:

  • [FONT:0)Pipeline: [Dönetici: [Dönetici:0))" #pragma HLS boru hattı II=1' yönergesi, bir saat döngüsüne giriş aralığı elde etmek için derleyiciyi talimat verir. Bu, yeni bir giriş pikseli her döngüyü tüketebilir, donanımı sürekli meşgul tutabilir.
  • [FONT:0)Dataflow:[Dönetici:[Dönetici:0)[Dönetici:0)))[[Dönetici:0))))) Önceki işlevi tamamlamak yerine, sürekli bir vizyon boru hattı inşa etmek için kritiktir.
  • [FONT:0)Array Katılımcı:[Döneticileri, görüntü mahalleleri temsil eden 2D diziler BRAM'da çip üzerinde depolanır. #pragma HLS serisi partition' yönergesi tek bir BRAM'ı birden küçük anılara ayırır, okuma/yazma portlarının sayısını arttırır.

Bu yönergelere göre, bir yazılım mühendisi, 4K videoyu gerçek zamanlı olarak işleme yeteneğine sahip son derece paralel bir donanım hızlandırıcısına dönüşebilir.

Doğrulama ve Donanım-in-Loop Testi

C++ testibench'in HLS derlemesinin RTL çıktısını doğrulamak için kullanıldığı yer, iş akışlarının standart bir parçasıdır. Ancak, çoğu güvenilir doğrulama, donanım-in-the-loop (HWIL), sentezlenen bitme FPGA'ya yükleniyor ve gerçek kamera verileriyle test ediliyor. Modern gelişim platformları bunu önceden inşa edilmiş baz uçları ve yazılım API'leri sağlayarak geliştiricilerin hızlı bir şekilde performans kaydetmesine izin veriyor.

Vaka Çalışması: Edge-Time Object Tespiti

Bu kavramların zemininde, tipik bir kenar dağıtımını düşünün: özel bir Vitis AI boru hattı ile bir drone veya akıllı kamera.

FPGA kumaşı, otomatik olarak konvoloyu hızlandıran bir MIPI CSI-2 alıcısına ayrılmıştır ve AXI-Stream arabirimleri ile bağlantılıdır, verileri DRAM müdahale etmeden çıktıya verir.

Sonuçlar zorlayıcı. Kria K26, sürücü zamanlaması ile getirilen jitterinistin 30 FPS'si ile elde edilen bir GPU çözümü için 30 W'yi aştı. Daha önemlisi, son derece gecikmeli bir özelliktir.

Geliştirme Ekosistemi'ni geri getirmek

Doğru donanım ve araçları seçmek kritiktir. FPGA ekosistemi, iki ana satıcı tarafından yönetilir, bariyeri giriş için daha düşük olan güçlü açık kaynak katkılarıyla.

AMD (Xilinx): Vitis ve Kria Ekosystem

AMD, vizyon hızlandırma için en kapsamlı platform sağlar.The DPUENT:0)Vitis AI) geliştirme ortamı, modelleme ve dağıtım, TensorFlow, PyTorch ve Caffe. DPUSU, ürün hatlarına dokunmadan FPGA'yı dağıtmaya izin vermek için yazılım geliştiricilerine izin vermek için.For host vision, the Kria SOM portföyü, Linux yönetim kurulu paketleri ve önceden inşa edilen uygulamaları destekleyen bir platform sunuyor.

Intel (Altera): OpenVINO ve Çevik

Intel'in stratejisi merkezleri, FPGA ivmesi için, OpenVINO, CPU'larda birleşik bir inferans API'si sunan, GPUs, Myriad VPUs ve FPGA için, diğer Intel donanımını kullanarak bu güçlü bir seçim yapar.

Açık Kaynak Çerçeveleri: HLS4ML ve FINN

Açık kaynak topluluğu, FPGA erişilebilirliğinin sınırlarını agresif bir şekilde zorlamaktadır. Donanım mimarisi üzerinde geliştiricilere tam kontrol sağlar.[Döneticiler Keras ve PyTorch modellerini doğrudan HLS C++ koduna uygularlar, bu zaman biraz daha optimize edilmiş ağlara sentezlenebilir ve geliştiricilere donanım mimarisine tam olarak izin verir).

[FONT=0) 1.Bölüm Adı: [FONT=0)[[0][0)[[0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|)))[0|0|0|0|0|0|0|0|0|0|0|0|0|)))))))))))[B][/FONT=

FPGA Vizyon Geliştirmede Kalıcı Zorluklar

İlerlemelere rağmen, FPGA gelişimi gerçek engelleri sunar. Donanım için uygun bir şekilde yazılmamış olan öğrenme eğrisi. HLS ile bile geliştiriciler boru gibi kavramları anlamalı, hafıza bölmesi ve sabit nokta arithmeticileri makul performans elde etmek için.

[FONT:0)Timing Closure:[Dönlendirme:[Dönlendirme:0) Tasarımlar büyük bir FPGA'yı doldurmak için büyürken, zaman zaman sınırlamaları zorlaşır.Yer-ve-route süreci saatlerce sürebilir ve beklenmedik bir yol gecikmesi RTL değişiklikleri veya zemin planlayıcı kısıtlamaları gerektirir.Bu iteration süresi bir yazılım derleyici döngüsünden daha uzundur.

[FONT:0]Ecosystem Fragmentasyon: [DFLT:1] Bir Intel cihazından bir tasarıma sahip olmak büyük bir çabadır.C++ ile yazılmış HLS kodu biraz taşınabilir olsa da, arayüzler (DPU vs. AI Suite) ve araç zincirleri (Vitis vs. Quartus) tamamen ayrıdır.

[FONT:0]Kaynak Eksleri:[Döneticileri: [Döneticiler, sonlu mantık unsurlarına sahipler. Büyük bir sinir ağı modeli, tek bir orta sınıf cihazda sığamaz. Mühendisler genellikle modellemeye, kanal azaltımı veya tiling - modeli kumaş üzerinde daha küçük parçalara ayırmalıdır.

Sonraki Frontier: AI Engines and Chiplets

FPGA gelişiminin yörüngesi derinden heterojen mimarilere doğru ilerliyor. AMD Versal ACAP (Adaptive Compute Acceleration Platform) asal örnektir. FPGA Kumaşı ölçeklenebilir motorlarla (ARM temelleri), adaptif motorlar (enerjik kumaş), ve akıllı motorlar (dövücü işleme için optimize edilmiş AI çekirdeği).

Chiplet mimarlıkları bu eğilimi daha da hızlandıracaktır. Ambalajlı FPGA kumaş çipleri AI motor çipleri ve ağ çipleri ile tek bir kişi arasında bir araya gelir, satıcılar monolithic bir durum olmadan ölçeklenebilir performans sunabilirler. bilgisayar vizyonu için, bu tek bir çip sensörü füzyon, klasik CV işleme, AI inference ve benzeri olmayan enerji verimliliği ile ortaya çıkabilir.

[FONT:0]Dynamic Partial Reformurasyon: Bu gelişmiş FPGA kapasitesi, sistemin geri kalanı tükendiğinde, programdaki mevcut olan hava donanım değişiklikleri olmadan, sistem için bir hızlandırıcı blok yapılandırabilir.

[FONT:0)Link 4:[[DÜT:1) [[Dönemli Görme için Xilinx Kria SOM).

Uzun Dönem için bina

Bilgisayar vizyonu için FPGA ivmesi, sistem mimarisine olan bir yatırımdır, sadece bir damla-in bileşeni takas değildir. ödüller önemli: tek bir FPGA, işlenme kararı çıktısı için ham sensör girişinden, HLS araçlama ve satıcı destekli kütüphanelerin maturasyonu bu teknolojiyi yazılım- mühendislik takımlarına erişilebilir hale getirebilir.

Takımlar için milisaniyelerin önemi, güç kısıtlanmış veya algoritma gereksinimlerinin donanım yaşam döngüsü sona ermeden önce gelişeceği yer, FPGAs en uygun ve yüksek performanslı temel sağlar.Yerel hesaplama modeli ile, geliştiriciler gerçek zamanlı olarak gördüğü donanımın sınırlarının ötesine geçer.