Analyse
GCC viert zilveren jubileum
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...

Met de Open GPS Tracker-app kunnen bezitters van een Android-telefoon hun route opnemen en op een kaart weergeven. Ondertussen hebben meer...
De eerste klap is een daalder waard, weet ook Hans Clevers. In zijn eerste interview sinds bekend was gemaakt dat hij DWDD-president Robbert Dijkgraaf opvolgt bij de KNAW zei de wereldberoemde...
26 maart 2010
Drie jaar lang opereerde Vector Fabrics onder de radar. Deze maand treedt de Eindhovense technostarter voor het voetlicht. Zijn eerste tool, VFAnalyst, laat zien hoe je C-code efficiënt kunt partitioneren. In november volgt VFSoftware, dat de parallellisatie daadwerkelijk uitvoert.
Begin deze maand heeft het Eindhovense Vector Fabrics zijn eerst product gelanceerd. VFAnalyst geeft ontwikkelaars inzicht in hoe ze hun C-code multithreaded kunnen maken voor implementatie op een multicore platform. Tot mei wordt het pakket alleen nog ondersteund in de Benelux, daarna volgt een Europese release. Later dit jaar verwacht Vector Fabrics ook zijn tweede product te kunnen demonstreren. VFSoftware doet het zware tilwerk en voert de parallellisatie daadwerkelijk uit. De tool zet willekeurige C-code om in RTL zonder dat de programmeurs verstand hoeven te hebben van de targethardware.
Vector Fabrics ontstond drie jaar geleden op initiatief van drie voormalige Philips/NXP-onderzoekers. Het drietal balanceerde altijd op het randje tussen hardware en software, maar miste de juiste gereedschappen. ‘De complexiteit van FPGA’s wordt steeds groter’, zegt Mike Beunder, die zich al snel als CEO bij de start-up voegde. ‘Waar Verilog of VHDL vroeger voldoende was, krijgen FPGA-ontwikkelaars nu ineens een softcore voor hun neus en moeten ze C gaan compileren. Daar hebben ze vaak weinig of geen ervaring mee.’
‘Aan de andere kant heb je de softwarejongens die altijd met een single-core X86 of een Sparc werkten’, gaat Beunder verder. ‘Nu die platforms niet meer snel genoeg zijn, moeten ze verhuizen naar een multicore. Helaas blijkt dat hun code daarop langzamer loopt. Heel vervelend, maar voor een deel te verwachten. Er gaat dan een handvol engineers een paar maanden aan de slag om Posix-threads in te voegen en daarna nog een half jaar om de performance te tunen. Dat is eigenlijk parallelliseren voor dummy’s: langzaam en ineffectief. Als je ze een hamer geeft, begint alles op een spijker te lijken en zijn ze overal driftig aan het timmeren zonder te beseffen waar het over gaat.’
VFAnalyst is de eerste stap op weg naar een oplossing, stelt Beunder: ‘De gebruiker krijgt op zijn scherm een compleet beeld van de applicatie. Hij krijgt inzicht in hoe zijn toepassing verloopt, het CPU-profiel, hoe intensief de cycles zijn, waar de data-afhankelijkheden liggen en vooral hoe je de applicatie in parallelle taken kunt opdelen en hoe die taken dan met elkaar synchroniseren en communiceren. Allemaal belangrijke informatie voor als hij straks moet partitioneren.’
Beunder noemt het een tomtom voor de partitioneringsstrategie. ‘Het laat zien waar je de meeste winst kunt halen met partitioneren. Nu begint een designer vaak met de stukken die het gemakkelijkst zijn te partitioneren, maar die leveren misschien maar weinig tijdwinst op. VFAnalyst geeft een lijstje met punten die zeker veel gaan opleveren. Misschien is het al genoeg om de eerste paar door te voeren om tot het gewenste resultaat te komen. Het gaat dus veel dieper dan een code profiler. Het laat zien hoe jouw systeem zich statisch en dynamisch gedraagt. Het zou bijvoorbeeld kunnen zijn dat een gekozen algoritme te weinig ruimte voor parallellisatie openlaat. In plaats van dat dit pas aan het einde van de rit boven water komt, wijst VFAnalyst de gebruiker er al tijdens de analysefase op.’
Vector Fabrics, dat inmiddels is gegroeid tot veertien medewerkers, baseerde zijn strategie grotendeels op gesprekken met potentiële klanten. ‘Dat is een van de lessen die ik heb geleerd bij Cavendish Kinetics’, vertelt Beunder, die eerder de kar trok bij die Bossche Mems-specialist. ‘Hoe eerder je met potentiële klanten gaat praten, hoe beter. In augustus 2007 hebben we de eerste ronde gemaakt van in totaal drie. Wij zijn op bezoek geweest bij bedrijven als Cisco en Juniper. In Nederland zijn we bij Océ en ASML langsgegaan, maar ook bij wat kleinere organisaties. Dat laatste is belangrijk, want meer dan de helft van de FPGA-ontwikkeling gebeurt bij MKB’ers. Zij bepalen dus in belangrijke mate in hoeverre je product een succes zal worden. En dat terwijl de FPGA-fabrikanten ze niet direct aanspreken. Bij Xilinx en Altera komt 60 tot 70 procent van de omzet van tien grote klanten. Daar kunnen ze in grote volumes leveren, maar als iemand veertig Virtexjes koopt, is het geen interessante klant. Dat loopt via een distributeur. Er diffundeert maar weinig informatie van de ene naar de andere kant. Ze hebben dus minder feeling voor wat die klanten nou willen of hoe ze hun ontwerp doen.’
De Eindhovenaren kregen op deze manier ook gelijk een goed beeld over de concurrentie. Beunder: ‘Het bleek dat veel bedrijven teleurgesteld waren in wat EDA voor FPGA te bieden had. Dan heb ik het niet over wat toolleveranciers aanbieden voor RTL-to-gate, dat eigenlijk een aftreksel is van Asic-EDA. De FPGA-wereld heeft altijd geleefd van het werk van de Asic-jongens vertaald naar de FPGA-omgeving. Nu de FPGA een grotere rol krijgt en zijn link met software moet vinden, blijkt dat er nooit echt innovatie is geweest op dat gebied. Waarom niet? Voor een deel een kwestie van geld, voor een deel een kwestie van de dominantie van de Asic-wereld, waar hardware de software overheerste.’
Het VFAnalyst-scherm bestaat uit vier delen. Linksboven staat het 1D-profiel, een boomstructuur die voor elke functie weergeeft hoeveel zij het systeem belast en hoeveel zij is afgedekt door de testset. In het gedeelte rechtsboven heeft Vector Fabrics hieraan nesting toegevoegd als extra dimensie. Hierdoor zijn de runtimerelaties tussen de functies makkelijker te zien. Rechtsonder staan de data-afhankelijkheden en linksonder de kritieke karakteristieken.
Er zijn wel wat bedrijfjes geweest die dat gat probeerden te dichten, maar die zijn tot nu toe niet boven het maaiveld uitgekomen. Ze gingen over de kop, werden in een vroeg stadium ingelijfd of adresseerden het probleem te beperkt. ‘Het probleem bleef dus in de wereld: hoe maak je de stap van Verilog of VHDL naar een hoger complexiteitsniveau’, legt Beunder uit en hij haalt de CTO van Xilinx aan. ‘Ivo Bolsens verwoordde het mooi: ‘Ik kan een softcore of een ander stukje IP op een FPGA neerleggen, dat is prima. Ik kan zelfs twee cores doen, nog steeds geen probleem. Maar als ik één draadje tussen die kernen trek, all hell breaks loose.’ Sommige bedrijven kwamen in een designcyclus terecht van twee jaar, met FPGA’s! Puur omdat ze een design space hebben waar ze continu moeten balanceren tussen performance van hardware en software.’
Tijdens de tweede klantentoer in 2008 heeft Vector Fabrics zich wat duidelijker gepositioneerd. ‘Multicore multithreaded was de key challenge voor de designers. Maar ook: hoe krijg ik de mensen die nu aan FPGA’s werken, omhoog naar bijvoorbeeld C? En hoe krijg je software-engineers die zich thuis voelen in C aan de FPGA? Bij Cisco sprak ik met de manager van een routerafdeling, een groep van tweehonderd man. Hij zei: ‘Kijk, daar in de hoek zitten mijn vier Verilog-designers. Ik heb geprobeerd ze C te leren. En ik heb een paar van onze C-programmeurs naar een Verilog-cursus gestuurd. Ze kunnen de taal van de ander nu wel schrijven, maar die kan het niet lezen. De mentaliteit, de gedachtegang, alles is anders.’ Dat was een belangrijke opmerking: onze tool moest overweg kunnen met alle vormen van C, ook vieze code. Zolang het Ansi-C is, accepteren we het.’
Begin 2009 schakelde Vector Fabrics over van technologieontwikkeling naar productontwikkeling. Het stelde zich een harde deadline om in januari 2010 het eerste product klaar te hebben. ‘We hebben een groot doel voor ogen, maar door de complexiteit zagen we al snel dat we het nooit in één keer konden doen. Daar hadden we simpelweg te weinig mensen voor. We moesten dus aan product partitioning doen.’
Software as a Service (Saas) via cloud computing is het businessmodel voor Vector Fabrics. Op dit moment moeten klanten hun broncode nog uploaden, maar er staat een downloadbaar front-end op de planning zodat er alleen nog maar binary’s over en weer hoeven. ‘Zo hoeven we geen distributie te doen, geen cd’s uit te sturen. Dat is tevens een goede beveiliging tegen illegaal kopiëren van software. Het belangrijkste argument voor cloud computing was echter het eenvoudig schalen van resources wanneer rekenintensieve optimalisaties moeten worden gedaan. Speciaal voor kleinere gebruikers zonder een serverfarm in de achtertuin biedt het een kosteneffectieve oplossing. Ook is het gemakkelijk voor de klant om bij problemen ondersteuning te vragen. Voor VFAnalyst werken we met een subscription fee: een klein bedrag per maand per gebruiker – op dit moment 85 euro als introductieprijs. Voor de daaropvolgende tools zullen we een strippenkaartmodel gebruiken.’
Vector Fabrics heeft op dit moment twee alfaprojecten lopen: Estate en Watervisie. Estate is een R&D-samenwerking met UC Berkeley en Xilinx voor de volgende generatie producten waar de Eindhovenaren zich ook gaan wagen aan heterogene systemen. ‘Dat is nog een stapje verder’, weet Mike Beunder. ‘Daar is het voor ontwikkelaars helemaal ondoorzichtig geworden. Wat gebeurt er als ik dit stukje code niet op mijn X86 laat lopen maar op een softcore op mijn FPGA en als ik dit gedeelte ook nog even ga accelereren? All bets are off.’
Het Watervisie-project, dat Vector Fabrics samen uitvoert met Havenbedrijf Rotterdam, Hitt en Vinotion, richt zich op het tracken van objecten in de haven. Om schepen te volgen, wordt een aantal observatiemethodes ingezet. Beunder: ‘Je hebt radar, maar dat is duur en heeft veel last van schaduweffecten. Transpondersystemen kun je uitzetten of zijn simpelweg niet aanwezig. Er zit dus een gat in de observatie. De haven wil deze twee methodes aanvullen met relatief eenvoudige camerasystemen. Die systeempjes moeten zelf wat verwerking doen, want je kunt niet alles doorsturen. Alleen de trackinginfo moet door naar de centrale. Daar moet je dan alle gegevens mergen. Als je dan bijvoorbeeld wel een beeld hebt, maar de andere twee inputs ontbreken, kun je de camera om een visual vragen. Met Vinotion hebben we eerst een haalbaarheidsstudie gedaan die de aanzet was voor het eigenlijke Watervisie-project.’
De bijdrage van Vector Fabrics in dit project zit hem in het snel afbeelden van de algoritmes op een embedded systeemconfiguratie met FPGA. ‘Waar de originele weg van algoritme naar een functioneel testbaar prototype zes maanden kon beslaan, kan dat nu worden verkort tot een week of hooguit enkele weken. Met VFAnalyst kijk je naar het hele systeem en kun je bepalen waar je moet partitioneren. Met de VFSoftware-technologie die nu nog in ontwikkeling is, partitioneer je het systeem en vervolgens optimaliseer en map je het op je FPGA en eventuele andere componenten. Het bovenste stuk, van C naar RTL, loopt binnen ons systeem. Daarna nemen de bestaande FPGA-tools het over. Het gehele embedded systeem wordt dus tegelijkertijd gecreëerd: RTL en embedded software.’
© Bits & Chips | Deze pagina op internet: http://www.bits-chips.nl/nieuws/bekijk/artikel/vector-fabrics-toont-toplocaties-voor-parallellisatie.html