Pieter Edelman
19 October 2018

Kunstmatige intelligentie, machine learning, deep learning: vandaag de dag zijn deze termen bijna standaard kost voor ontwikkelaars van embedded systemen. Van iot-devices die met spraaksturing werken tot productiemachines die falen zien aankomen, lerende systemen worden snel populair in de embedded-wereld.

Maar het is nog vrij ongebruikelijk dat deze technieken ook in het embedded-domein draaien; de golf ai-toepassingen moet het tot nog toe veelal van een hulplijntje naar de cloud hebben. Dikwijls is er te veel rekenkracht of geheugen nodig, of het is uit ontwikkeloogpunt gewoon veel simpeler om de toepassing uit te rollen naar een server.

Er is echter een groeiende trend om de uitvoer te verplaatsen naar de edge, dus de devices zelf of systemen in de buurt. Een roundtrip naar een extern systeem kost immers tijd en data, wat onhandig kan zijn uit latency-, betrouwbaarheids- en kostenoogpunt. Ook vanuit privacy- of concurrentieoverwegingen kan het onaantrekkelijk zijn om voortdurend gegevens uit te wisselen met een derde partij.

Voor embedded-chipmakers is het dus zaak om met een lokale-ai-strategie te komen. Deze week onthulde NXP hoe het ontwikkelaars op dit vlak tegemoet wil komen in de vorm van zijn EIQ-toolkit.

Bits&Chips event sponsor registration-early bird

Ai-model direct op de microcontroller

Met EIQ wil NXP het mogelijk maken uiteenlopende soorten ai-modellen naar de complete reeks van zijn Arm-gebaseerde socs te brengen. Daarmee wordt het hele aanbod bestreken, uiteenlopend van microcontrollers (Cortex-M) tot high-performance applicatieprocessoren (Cortex-A). De toolkit bevat hardwareabstractielagen en gereedschappen om modelbeschrijvingen in de cpu’s, gpu’s en dsp’s van deze systeemchips te gieten.

Volgens NXP zijn al die devices in principe geschikt voor inference, ofwel het toepassen van getrainde ai-modellen. ‘We hebben een beeldherkenningssysteem gebouwd voor slimme keukenapparatuur, bijvoorbeeld voor een magnetron die voedsel kan herkennen om zelf het vermogen en de verwarmingstijd in te stellen’, geeft Steven Tateosian, marketingdirecteur voor iot- and security-oplossingen, als voorbeeld. ‘We konden dezelfde toepassing op een microcontroller- en een applicatieprocessorgebaseerd systeem draaien; er zat alleen een factor vier of vijf snelheidsverschil tussen.’

Afhankelijk van de toepassing kan dat wel of niet van belang zijn; voor een magnetron zal het niet zo veel uitmaken of die een paar honderd milliseconden langer nodig heeft om het prakje te herkennen. Maar bij een safety-toepassing zou die overweging heel anders kunnen uitvallen.

Andersom is het een voordeel dat geavanceerde ai-technieken naar de minder krachtige devices gebracht kunnen worden, legt Tateosian uit. ‘Klanten die een Linux-gebaseerd systeem ontwikkelen, zullen uiteraard een Cortex-A-gebaseerd systeem gebruiken, maar als ze dat niet nodig hebben, kiezen ze een minder krachtig device. Als je naar het verwerken van spraakcommando’s kijkt, zie je geen groot verschil tussen Cortex-A- en Cortex-M-devices, en doordat we Cortex-M ondersteunen, hoeven ze niet over te stappen naar een complexer Linux-systeem om alleen maar spraakcapaciteiten toe te voegen.’

Specifieke hardware?

Machine learning vraag in de regel echter eerder om meer dan om minder rekenkracht, met name als het om deep learning gaat. In EE Times hint Geoff Lees, general manager microcontrollers bij NXP, dan ook op GHz-mcu’s volgend jaar. Ai-algoritmes worden doorgaans echter niet op de cpu gedraaid, maar op coprocessoren als gpu’s en dsp’s, al dan niet met uitbreidingen die de algoritmes makkelijker moeten maken. Tateosian zegt dat EIQ al dit soort coprocessoren ondersteunt, net als toepassingspecifieke hardware.

Dat laatste is een interessante toevoeging, want de opkomst van ai heeft geleid tot een enorme push van chipmakers naar deep-learning-specifieke architecturen en diverse miljardenovernames. NXP heeft dergelijke versnellers niet in zijn aanbod. Tateosian wil er op dit moment niks over kwijt, maar het ligt voor de hand dat de chipmaker er ook mee bezig is.

NXP zet echter ook in op nog een ander scenario om de prestaties op te schroeven: getrapte performance, waarbij een minder krachtig device de vraag kan doorspelen naar een apparaat in de buurt met meer performance. Die kan het op zijn beurt weer escaleren naar weer een andere helper of eventueel een cloud-backend.

‘Als je het voorbeeld van de magnetron weer neemt, dan kan het zijn dat die een goedkopere microcontroller gebruikt voor beeldherkenning, terwijl de koelkast een geavanceerdere processor en netwerkverbinding heeft. Op het moment dat je iets in de magnetron zet dat niet wordt herkend, kan die om hulp vragen bij de koelkast, en als die het niet weet, kan die naar de cloud toe. En als het antwoord terugkomt, kan de magnetron worden geüpdatet met de nieuwe informatie zodat die in het vervolg het voedsel wel weer zelf herkent.’

Op die manier denkt NXP ook het lastige probleem van modeltraining gedeeltelijk te kunnen ondervangen. Dit vereist veel meer rekenkracht dan het toepassen van een getraind model, waardoor het al snel niet meer mogelijk is op een edge-device. Maar voor een systeem dat slechts nu en dan iets moet bijleren – bijvoorbeeld een nieuw gezicht herkennen – kan getrapte uitvoer een kosteneffectieve oplossing bieden.

Neurale netten en klassieke algoritmes

Qua ai-algoritmes biedt EIQ ondersteuning voor verschillende neurale-netwerktechnologieën. De toolkit kan modellen uit een aantal belangrijke ontwikkelomgevingen gebruiken, waaronder Arm NN, Caffe2, CNTK, Tensorflow Lite en Tencent NCNN. Het is in principe ook mogelijk om nieuwe modellen te ontwikkelen, maar Tateosian denkt niet dat dat veel gebruikt zal worden. ‘De meeste ontwikkelaars zullen vanuit een bestaand model werken’, meent hij.

Maar ai is breder dan neurale netwerken en EIQ kan ook overweg met meer ‘klassieke’ algoritmes zoals support vector machine en random forest. Ook is er ondersteuning voor meer specifieke bibliotheken zoals Opencv voor beeldverwerking. En NXP heeft zelf applicatiespecifieke api’s toegevoegd voor gezichtsherkenning, spraakherkenning en anomaliedetectie. ‘Anomaliedetectie gebruikt bijvoorbeeld support vector machines. We zien daar verschillende toepassingen op het gebied van voorspellend onderhoud, wat met kosteneffectieve microcontrollers gedaan kan worden’, vertelt Tateosian.

In principe ziet NXP geen beperkingen in het type ai-toepassingen dat met EIQ kan worden ontwikkeld. In de praktijk zal het echter vooral gaan om iot- en industriële applicaties – simpelweg omdat de ondersteunde devices vooral in die categorie vallen. Tateosian: ‘En als je kijkt naar bijvoorbeeld automotive-vision, werkt de automotive-groep binnen NXP aan meer specifieke oplossingen. Maar de omgeving is niet zo ingericht dat die alleen maar bepaalde typen toepassingen ondersteunt.’