Hur du snabbt bygger och distribuerar anpassningsbara tillämpningar i molnkanten med en produktionsklar plattform
Bidraget med av DigiKeys nordamerikanska redaktörer
2022-02-03
Tillämpningen av artificiell intelligens (AI) i molnkantsbaserade smarta kameror har snabbt fått acceptans inom ett växande antal inbyggda tillämpningar för seende, t.ex. maskinseende, säkerhet, detaljhandel och robotteknik. Även om den snabba uppkomsten av tillgängliga algoritmer för maskininlärning (ML) har bidragit till att öka intresset för AI, kämpar utvecklare fortfarande med att klara snäva projektplaner och samtidigt leverera hög prestanda med låg effekt för molnkantsbaserade tillämpningar.
För att komplicera saken ytterligare, kan varje nyligen införd lösning snabbt bli suboptimal på grund av de snabbt föränderliga tillämpningskraven och ständiga förbättringar i de algoritmer som utvecklas.
Artikeln presenterar en flexibel systemmodullösning från Xilinx som utvecklare kan använda för att snabbt implementera smarta kameralösningar för användning i molnkanten. Den visar hur man lättare kan anpassa dessa lösningar till förändrade behov utan att kompromissa med viktiga krav på latenstid och strömförsörjning.
Snabbare genomförande av tillämpningar för seende
Systemmodulen Kria K26 från Xilinx bygger på en specialanpassad Zynq UltraScale+ multiprocessorsystemkrets (MPSoC) med ett robust inbyggt bearbetningssystem och består av en 64-bitars fyrkärnig Arm Cortex-A53 programprocessor (APU), en 32-bitars dubbelkärnig Arm® Cortex®-R5F realtidsprocessor (RPU) och en Arm Mali-400MP2 3D-grafikprocessor (GPU). Systemmodulen kombinerar multiprocessorsystemkretsen med fyra Gb 64-bitars DDR4-minne (Double Data Rate 4) och tillhörande minnesstyrenheter samt flera NVM-enheter (Non Volatile Memory), inklusive 512 Mb QSPI-minne (Quad Serial Peripheral Interface), 16 Gb eMMC-minne (Embedded Multi-Media Card) och 64 kb EEPROM (Electrically Erasable Programmable Read-Only Memory) (figur 1).
Figur 1: Systemmodulen Kria K26 från Xilinx kombinerar den omfattande bearbetningskapaciteten hos en specialanpassad Zynq UltraScale+ MPSoC med en Trusted Platform Module 2.0 (TPM2) och dynamiskt och icke-flyktigt minne. (Bildkälla: Xilinx)
Xilinx kompletterar sina bearbetnings- och minnesresurser med ett omfattande programmerbart logiksystem som omfattar 256 000 celler för systemlogik, 234 000 flip-flops i konfigurerbara logikblock (CLB), 117 000 uppslagstabeller (LUT) för CLB och totalt 26,6 Mb minne i olika konfigurationer av distribuerat RAM-minne (random access memory), block-RAM och ultraRAM-block. Det programmerbara logiksystemet innehåller dessutom 1 248 digitala signalbehandlingsenheter (DSP), fyra transceivers och en videocodec för H.264 och H.265 med stöd för upp till 32 strömmar med samtidig kodning/avkodning, upp till totalt 3840 x 2160 pixlar vid 60 bilder per sekund (bps). Systemmodulens två anslutningar med 240 stift ger snabb tillgång till funktionsblock och kringkretsar genom användarkonfigurerbara in- och utgångar (I/O).
Denna kombination av processorkärnor, minne och programmerbar logik ger en unik nivå av flexibilitet och prestanda som övervinner viktiga nackdelar med GPU:er som används för höghastighetsutförande av ML-algoritmer. Till skillnad från det fasta dataflödet i GPU:er kan utvecklaren konfigurera om datavägen för systemmodulen K26 för att optimera dataflödet och minska latensen. Arkitekturen i K26 är dessutom särskilt väl lämpad för den typ av kringspridda nätverk som utgör kärnan i ett växande antal tillämpningar för maskininlärning.
Programmerbarheten i systemmodulen K26 hanterar även flaskhalsar i minnet som både ökar strömförbrukningen och begränsar prestandan i minnesintensiva tillämpningar, som t.ex. maskininlärning som byggs med konventionella arkitekturer och använder GPU:er, flerkärniga processorer eller till och med avancerade systemkretsar. I en tillämpning som utformas med dessa konventionella enheter står det externa minnet vanligtvis för cirka 40 % av systemets energiförbrukning, medan processorkärnorna och det interna minnet vanligtvis står för cirka 30 % vardera. I motsats till det, kan utvecklare däremot dra nytta av de interna minnesblocken och omkonfigurerbarheten i systemmodulen K26 för att implementera konstruktioner som kräver liten eller ingen extern minnesåtkomst. Resultatet är en högre prestanda och lägre energiförbrukning än vad som är möjligt med konventionella enheter (figur 2).
Figur 2: Medan system baserade på inbyggda CPU:er och typiska SoC:er kräver flera strömförbrukande minnesåtkomster för att köra sina program, använder system baserade på Xilinx Kria en effektiv pipeline för seende som kan utformas för att undvika alla DDR-åtkomster. (Bildkälla: Xilinx)
Tillsammans med sin höga prestanda, låga energiförbrukning och omfattande omkonfigurerbarhet bidrar systemmodulen K26 till att garantera säkerheten i smarta kameror för känsliga tillämpningar. Tillsammans med systemmodulens inbyggda TPM-säkerhetsenhet har multiprocessorsystemkretsen en inbyggd dedikerad konfigurationssäkerhetsenhet (CSU) som stöder säker uppstart, manipulationsskydd, säker nyckellagring och kryptografisk hårdvaruacceleration. Tillsammans utgör CSU:n, kretsens inbyggda minne (OCM) och den säkra nyckellagringen en säker grund för att garantera en tillförlitlig betrodd hårdvara för implementering av säker uppstart och en pålitlig plattform för körning av program.
De omfattande funktioner som finns tillgängliga i systemmodulen K26 är en kraftfull grund för att implementera krävande molnkantsbaserade tillämpningar. Varje tillämpning har dock sina egna krav på egenskaper och funktion i samband med en tillämpningsspecifik uppsättning kringutrustning och andra kringkretsar. För att förenkla implementeringen av tillämpningsspecifika lösningar är systemmodulen K26 konstruerad för att kunna anslutas på ett huvudkort som innehåller ytterligare kringutrustning. Xilinx demonstrerar detta tillvägagångssätt med sitt KV260 Vision AI Starter Kit som är baserat på Kria K26.
Startpaketet förenklar utvecklingen av tillämpningar för seende
KV260 Vision AI Starter Kit från Xilinx består av systemmodulen K26 som är ansluten till ett huvudkort med fokus på seende och tillhandahåller en plattform som är speciellt utformad för omedelbar utvärdering och snabb utveckling av smarta tillämpningar för seende. Medan systemmodulen K26 tillhandahåller den nödvändiga bearbetningskapaciteten, tillhandahåller startpaketets huvudkort strömhantering, inklusive sekvensering vid start och återställning samt gränssnittsalternativ och kontakter för kamera, bildskärm och microSD-kort (figur 3).
Figur 3: KV260 Vision AI Starter Kit från Xilinx erbjuder en komplett smart lösning för seende med systemmodulen K26 som är ansluten till ett huvudkort fokuserat på seende. (Bildkälla: Xilinx)
Tillsammans med de många gränssnitten har huvudkortet stöd för flera kameror genom sin anslutning för Raspberry Pi och ett par anslutningar för bildåtkomstsystem (IAS), varav en kopplas till en särskild 13 megapixel (MP) AP1302 bildsensorprocessor (ISP) från onsemi som klarar av att hantera alla bildbehandlingsfunktioner.
För att ytterligare påskynda implementeringen av tillämpningar för seende har Xilinx stöd för denna fördefinierade hårdvaruplattform för seende med en rad förbyggda accelererade program för seende, tillsammans med en omfattande uppsättning programverktyg och bibliotek för anpassad utveckling.
Snabbare tillämpningar ger omedelbara lösningar
För omedelbar utvärdering och snabb utveckling av accelererade tillämpningar inom seende erbjuder Xilinx flera färdiga program som visar hur flera populära användningsområden utförs, inklusive smart ansiktsdetektering med kamera med hjälp av den programmerbara logiken, identifiering och spårning av fotgängare, detektering av defekter och identifiering av likadana nyckelord med hjälp av multiprocessorsystemkretsens bearbetningssystem. Respektive program är tillgängligt i Xilinx Kria App Store och erbjuder en komplett lösning för det specifika användningsfallet med tillhörande verktyg och resurser. Programmet för smart ansiktsdetektering med kamera, använder exempelvis den inbyggda bildsensorn AR1335 på huvudkortet KV260 och ISP:n AP1302 för att ta bilder, och kortets HDMI- eller DisplayPort-utgång för att återge resultatet. För bearbetning av ansiktsdetektering konfigurerar programmet systemmodulen K26 för att tillhandahålla en accelererad pipeline för bilder och en förbyggd slutsatsmotor med maskininlärning för ansiktsdetektering, personräkning och andra smarta kameratillämpningar (figur 4).
Figur 4: Förbyggda accelererade körklara program kan laddas ner från Xilinx Kria App Store och kan köras direkt på startpaketet KV260, för att tillhandahålla kompletta lösningar för användningsmodeller för seende såsom ansiktsdetektering. (Bildkälla: Xilinx)
Genom att tillhandahålla en fullständig implementering och stöd, kan förbyggda accelererade tillämpningar från Xilinx App Store göra det möjligt för utvecklare att få igång konstruktioner på mindre än en timme, även om de saknar FPGA-erfarenhet. När de utvärderar programmet kan de använda den inkluderade programvarustacken för att ändra funktionaliteten och utforska alternativa lösningar. För mer omfattande specialutveckling tillhandahåller Xilinx en omfattande uppsättning utvecklingsverktyg och bibliotek.
Utvecklingsmiljö och verktyg för AI för att underlätta snabbare anpassad utveckling
För anpassad utveckling av AI-baserade tillämpningar erbjuder Xilinx AI-utvecklingsmiljön Vitis med optimerade verktyg, bibliotek och förtränade modeller som kan tjäna som grund för mer specialiserade anpassade modeller. När det gäller exekveringsmiljön, har den inbäddade Yocto-baserade Linux-programutvecklingsmiljön PetaLinux(SDK) hela den uppsättning funktioner som krävs för att bygga, utveckla, testa och distribuera inbyggda Linuxsystem.
AI-miljön Vitis är utformad för både experter och utvecklare utan FPGA-erfarenhet och hanterar detaljerna i den underliggande kiselhårdvaran så att utvecklarna kan fokusera på att bygga effektivare modeller för maskininlärning. Faktum är, att AI-miljön Vitis är integrerad med kompilatorstacken Apache Tensor Virtual Machine (TVM) för djupinlärning baserad på öppen källkod, vilket gör det möjligt för utvecklare att kompilera sina modeller från olika ramverk till en processor, GPU eller accelerator. Genom att använda Vitis AI med TVM kan utvecklare förbättra sina befintliga konstruktioner med accelererade funktioner för seende, genom att avlasta beräkningsintensiva arbetsbelastningar för seende, som t.ex. djupinlärningsmodeller, till systemmodulen Kria. För att hjälpa utvecklare att optimera sina modeller för djupinlärning ytterligare, kan verktyget AI Optimization från Xilinx optimera neurala nätverk för att minska komplexiteten i termer av antalet gigaoperationer per sekund (Gops), öka antalet bilder per sekund (bps), minska modeller med för många parametrar och komprimera dem upp till 50 gånger med liten inverkan på noggrannheten i termer av genomsnittlig precision (mAP) (figur 5).
Figur 5: En fallstudie från Xilinx Research visade hur några få iterationer av optimering med hjälp av Xilinx optimeringsverktyg för AI, snabbt kan minska komplexiteten i det neurala nätverket i form av antalet Gops, samtidigt som man ökar antalet bilder per sekund, allt med liten inverkan på noggrannheten. (Bildkälla: Xilinx)
För implementering av anpassade tillämpningar för seende är Vitis Vision Libraries med öppen källkod från Xilinx, optimerade för hög prestanda och lågt resursutnyttjande på Xilinx-plattformar, med ett välbekant gränssnitt baserat på OpenCV. När det gäller analys hjälper programutvecklingsramverket Video Analytics SDK utvecklare att bygga effektivare pipeline för bild- och videoanalys utan att behöva ha djupa FPGA-kunskaper. Video Analytics SDK bygger på det allmänt vedertagna ramverket GStreamer med öppen källkod och gör det möjligt för utvecklare att snabbt skapa anpassade accelerationskärnor som plugin-program för GStreamer för integrering i SDK-ramverket.
Med hjälp av dessa verktyg kan en normal utvecklare för inbäddade system, enkelt sätta ihop anpassade accelerationspipelines med eller utan anpassade accelerationskärnor.
Sammanfattning
Räkneintensiva algoritmer för maskininlärning har gjort det möjligt att använda smart teknik för seende i många tillämpningar som körs i molnkanten, men utvecklare ställs inför flera utmaningar när de ska uppfylla kraven på hög prestanda, låg effekt och anpassningsförmåga för molnkantsbaserade system för seende. Systemmodulen Kria K26 från Xilinx tillhandahåller hårdvarugrunden för att accelerera avancerade algoritmer utan att överskrida strikta effektbudgeter. Med hjälp av ett startpaket med förbyggda program baserat på Kria K26 kan utvecklare omedelbart börja utvärdera smarta tillämpningar för seende och använda en omfattande utvecklingsmiljö för att skapa anpassade lösningar för utrustning i molnkanten.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.



