< Terug naar vorige pagina

Project

Exploratie van de ontwerpruimte voor deep learning hardwareversnellers

In de afgelopen tien jaar heeft deep learning de kunstmatige intelligentie een nieuwe vorm gegeven, dankzij de evolutie van de rekencapaciteit van de hardware, de verbetering van de algoritmen en de steeds grotere hoeveelheid gegevens. Onder impuls van een breed scala aan toepassingen in diverse sectoren, zoals computervisie, verwerking van natuurlijke taal, gezondheidszorg, financiën, productie, robotica, enz. heeft deep learning een enorme impuls gekregen in zijn ontwikkeling en toepassingen. 

De snelle en efficiënte verwerking van deep learning-modellen is echter een uitdaging vanwege hun rekenintensieve, gegevensintensieve en diverse aard. Dit is vooral belangrijk het tegelijkertijd cruciaal voor veel gebruikssituaties, vooral in scenario's met beperkte capaciteit, zoals mobiele en IoT-apparaten. Als gevolg daarvan worden talrijke gespecialiseerde hardwareversnellers gebouwd, die profiteren van het intrinsieke, zeer parallelle rekenpatroon van deep learning-modellen. 

Deze versnellers bestaan meestal uit een array van vermenigvuldig-en-accumuleer-eenheden voor parallelle berekeningen, een geheugenhiërarchie voor het voeden/opslaan van gegevens, en een vooraf gedefinieerde controller voor het orkestreren van de berekeningen en de verplaatsing van gegevens. Aangezien de verwerkingsefficiëntie nauw samenhangt met het ontwerp van deze componenten, is een zorgvuldige constructie ervan van cruciaal belang. Maar omdat de ontwerpruimten van deze componenten enorm groot en met elkaar verweven zijn, en de traditionele digitale ontwerpflow te traag is om elke ontwerpoptie te evalueren, is het moeilijk om uit het ad hoc ontwerpparadigma te stappen en een globaal optimale oplossing na te streven.

Om deze hindernis aan te pakken is exploratie van de ontwerpruimte in een vroeg stadium nodig. Dit proefschrift draagt hiertoe bij door, ten eerste, de systematische identificatie van de ontwerpruimte van deep learning-versnellers op verschillende abstractieniveaus en, ten tweede, de inzichtelijke exploratie van deze afzonderlijke en gezamenlijke ontwerpruimten. Op verschillende abstractieniveaus richt dit proefschrift zich op verschillende exploratieparameters:

Op het niveau van multiply-and-accumulate eenheden en arrays richt dit proefschrift zich op het bestuderen van het datapad voor lage-precisie en variabele-precisie rekenen, waarvan bewezen is dat het grote voordelen biedt op het gebied van rekentijd en energie voor systemen met beperkte middelen (zonder significant verlies van algoritmische nauwkeurigheid). Dit werk construeert systematische taxonomieën voor precisie-schaalbare vermenigvuldig-en-accumuleer eenheden en arrays na identificatie van de verschillende ontwerpopties. Deze taxonomieën tonen het skelet van de ontwerpruimten, die niet alleen de bestaande state-of-the-art precisieschaalbare ontwerpen omvatten, maar ook nieuwe onontgonnen architecturale opties blootleggen. Deze verschillende ontwerpopties worden vervolgens grondig vergeleken, en er worden interessante compromissen en ontwerpinzichten ontdekt.

Een stap hoger in de abstractie op het niveau van de single-core versneller, combineren we de multiply-and-accumulate array en een geheugenhiërarchie, samen met verschillende mapping/scheduling mogelijkheden. Dit proefschrift bouwt de snelle hoog-niveau architecture-mapping design space exploration frameworks, ZigZag en DeFiNES. ZigZag richt zich op single-layer mapping, terwijl DeFiNES ZigZag uitbreidt om depth-first scheduling te ondersteunen. Dankzij het deterministische rekenpatroon van deep learning, stellen de ingebouwde analytische kostenmodellen deze frameworks in staat om de energie- en rekentijd van de verwerking van een deep learning-model op een aangepaste versneller in milliseconden tot seconden te schatten, wat de weg vrijmaakt voor snelle architectuur/mapping-exploratie en optimalisatie. In dit proefschrift tonen verschillende modelvalidatie-experimenten en meerdere case studies de betrouwbaarheid en mogelijkheden van deze frameworks aan.


Door de steeds grotere diversiteit en omvang van de modellen wordt het ontwerp van deep learning-versnellers de laatste tijd gedreven naar het multi-core niveau, dat meerdere versnellingscores en een netwerk-op-chip combineert, samen met massale mogelijkheden voor scheduling en layer-core toewijzing. Op dit niveau neemt de complexiteit van de ontwerpruimte verder toe. Dit proefschrift biedt een raamwerk, Stream, om dit systematisch aan te pakken. Stream is een hoog-niveau framework voor multi-core versneller modellering en ontwerpruimte exploratie, gebouwd op ZigZag. Het kan verschillende core-architecturen, core-to-core communicatietopologieën, layer-core toewijzingen en fijnmazige layer-fused scheduling onderzoeken, waarbij verschillende deep learning-modellen worden ondersteund. Stream baant de weg voor snel en systematisch multi-core deep learning-acceleratorontwerp.

Het is belangrijk op te merken dat de totstandbrenging van deze verschillende raamwerken alle een vergelijkbare methodologie in drie stappen volgen: ten eerste, verschillende ontwerpopties identificeren en een uniforme ontwerprepresentatie construeren die deze opties omvat; ten tweede, op basis van deze uniforme representatie de kostenmodellen construeren; ten slotte, automatisch verschillende ontwerpkandidaten genereren en deze evalueren met de kostenmodellen. Op deze manier wordt de lus gesloten en kan de ontwerpruimte automatisch worden verkend.

Samengevat heeft dit proefschrift tot doel de enorme ontwerpruimte van deep learning versnellers op deze verschillende abstractieniveaus duidelijk te introduceren, en grondig uit te leggen hoe de hoog-niveau ontwerpruimte exploratie-frameworks kunnen worden gebouwd om snel ontwerpinzichten te krijgen. Door het delen van de ontwikkelde frameworks in open source, word-en taxonomie, modellering en exploratie-methodologieën van dit proefschrift doorgegeven aan toekomstige onderzoekers

Datum:31 aug 2018 →  24 aug 2023
Trefwoorden:machine learning, embedded processor
Disciplines:Sensoren, biosensoren en slimme sensoren, Andere elektrotechniek en elektronica, Nanotechnologie, Ontwerptheorieën en -methoden
Project type:PhD project