< Terug naar vorige pagina

Project

Hardware-bewuste, context-schaalbare beeldverwerking voor ingebedde visuele navigatie

Parallelisatie is één van de meest toegepaste technieken om hoogperformante rekensystemen te maken. Het uitvoeren van meerdere operaties in parallel is een noodzaak om te voldoen aan de hoge eisen op rekenkracht en werkt met name voor toepassingen waarin voornamelijk data manipulaties worden uitgevoerd (zgn. data dominated applications). De manier waarop deze parallellisatie wordt geïmplementeerd beïnvloedt op zijn beurt de efficiëntie en flexibiliteit van het platform: doordat parallelle rekeneenheden gebruik kunnen maken van gemeenschappelijke componenten wordt er bespaard in het energieverbruik. Anderzijds houden deze gedeelde componenten beperkingen in op vlak van flexibiliteit, aangezien ze verschillende rekeneenheden tegelijk moeten bedienen. Daarom is het doel van dit proefschrift om de afwegingen tussen performantie, flexibiliteit en efficiëntie te onderzoeken voor verschillende manieren van parallellisatie en op basis van deze inzichten een nieuw rekenplatform voor te stellen dat op flexibele en efficiënte manier data dominated applications kan uitvoeren.

De eerste van twee onderzochte parallellisatietechnieken is data parallellisme. Bij data parallellisme wordt dezelfde operatie tegelijk uitgevoerd op meerdere data elementen, waardoor de instructie gedeeld kan worden tussen de rekeneenheden (SIMD - Single Instruction Multiple Data). Dit werk onderzoekt de effecten van het opschalen van het aantal rekeneenheden in een dergelijk systeem en toont de beperkingen ervan aan. Als meest opvallende conclusie stelt dit onderzoek vast dat het toevoegen van rekeneenheden niet noodzakelijk resulteert in een efficiënter systeem. De reden hiervoor is de energiekost die gepaard gaat de hoge geheugenbandbreedte naar de parallelle rekeneenheden toe, met daar bovenop de beperking van de wet van Amdahl.

Taak parallellisme voorziet een alternatief door aan elke rekeneenheid een instructie toe te wijzen en de data gemeenschappelijk te maken (MISD - Multiple Instruction Single Data). Om de geheugenbandbreedte te beperken, worden data elementen door een diepe pijpleiding geduwd alvorens ze weer in het geheugen worden weggeschreven. Deze techniek is gelijkaardig aan het principe van Systolic Arrays en zorgt voor een hoge efficiëntie, zelfs voor systemen met veel parallelle eenheden. Het nadeel van taak parallellisme is een beperkte flexibiliteit: door data gemeenschappelijk te maken ontstaan er moeilijkheden in algorithm mapping (het bepalen van welke instructie er wordt uitgevoerd in welke rekeneenheid op welk moment).

Om het MISD principe beter mogelijk te maken, introduceert dit werk drie innovaties in het gebied van Coarse Grained Reconfigurable Arrays (CGRAs). De eerste innovatie reduceert de kosten die gepaard gaan met overmatige configureerbaarheid. De tweede innovatie verdeelt geheugenelementen over het rekenplatform om een inefficiënt centraal geheugen te vermijden. En de derde innovatie, ten slotte, verbindt de parallelle rekeneenheden met een netwerk dat is aangepast aan de doeltoepassing. Daarenboven biedt dit werk verschillende technieken aan die een antwoord bieden op uitdagingen doorheen het hele ontwerpproces, van conceptualisatie en visualisatie tot fysische implementatie.

Deze verschillende innovaties leidden tot twee implementaties in recente silicium-technologieën (22 nm FDX en 28 nm CMOS). De gefabriceerde chips bereiken piekperformanties van 103.2 GOPS en 295.9 GOPS, aan bijhorende energie-efficiënties van respectievelijk 554.0 GOPS/W en 1163.1 GOPS/W. Deze resultaten bereiken een tot 42× hogere performantie en een tot 4× hogere efficiëntie dan een geoptimaliseerd ontwerp dat gebruik maakt van data parallellisme.

Datum:2 sep 2014 →  2 jun 2021
Trefwoorden:Embedded visual navigation
Disciplines:Nanotechnologie, Ontwerptheorieën en -methoden
Project type:PhD project