FPGA-makers op zoek naar de softwareontwikkelaar



Vergelijkbare documenten
EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1

Herconfigureerbare Hardware in Ieders Bereik

Nederlandse samenvatting (Dutch summary)

Design Data Management voor FPGA ontwikkeling

Een Inleiding tot Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Software Test Plan. Yannick Verschueren

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

computerarchitectuur antwoorden

Cover Page. The handle holds various files of this Leiden University dissertation

Updategids Asta Powerproject. Wat is er nieuw in versie 14?

Van dvd naar webserver. Marcel Nijenhof 18 Juli

Wat is Arduino? Arduino = microprocessor (Atmel)

Werkblad H1 Hard en Software

Cloud Computing: Met HPC in de wolken Ron Trompert

Hardware-software Co-design

6 Methodology. afgelopen twee jaar de grafische processor ontdekt als snelle en goedkope bron van verwerkingscapaciteit.

Waarmaken van Leibniz s droom

PHP-OPDRACHT SITE BOUWEN

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Multi-core systemen. door Alexander Melchior

De Parallelle Revolutie van GPU's en CPU's

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

SOFTWARE ELEKTRONICA

1,3 miljoen regels mission critical code omzetten naar C++, hoe test je dat?

Ik wil weten hoe Linux snel en goedkoop kan!

Angular Best Practices Door Alex en Chris van Beek

Nieuw: controllers van Syel Europe

1. ONTWIKKEL EEN MOBIELE VERSIE

Nieuwe computer en printer?

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

MORSE aan een draadje

Vier aandachtspunten bij het specificeren van digitaal geregelde voedingen

Drs. B.J. van der Veldt Directeur Productontwikkeling AFAS Erp Software B.V.

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Roadmap. RIE Manager

SAP Mobile Documents SP 05 Hoe het werken met de nieuwste versie nog makkelijker is geworden.

januari TTNWW Handleiding TST tools voor het Nederlands als Web services in een Workflow Meertens Instituut, Joan Muyskensweg 25, 1096 CJ Amsterdam

Inhoud. Geschiedenis / evolutie van OpenEmbedded en Yocto Overzicht van de architectuur en concepten Persoonlijke ervaring

Customer Case CED. Feiten in het kort:

To cloud or not to cloud Afgewogen keuzes maken met DYA Software

UBC op Microsoft Windows 64-bits

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

3D systemen-op-chip. Het 3D-technologielandschap. Semiconductor technology & processing

Eventing. Introductie. Regel verwerking. Basis structuur

Factsheet CONTINUOUS VALUE DELIVERY Mirabeau

Tetra Industriële Security

Programmeren: Visual Basic

ONTZORG DE ZORGPROFESSIONAL DOOR VIRTUALISATIE

Automated Engineering White Paper Bouw & Infra

PCI Ontwikkelplatformen

Release notes Release

Architectuurredeneermodel Afgewogen keuzes maken

Handleiding installeren en configureren programmeeromgeving tbv de module JavaEditor

Software Test Documentation

Software Test Plan. Yannick Verschueren

Analyse Programmeertalen

iomniwize: tip 1: Les- en methodefiches in uw agenda plannen, lessen verwijderen en uw eigen favoriete mappen instellen

Factsheet Crowd Testen

Interactieontwerp Groepsopdracht Week 2, Opdracht 16

Marlin Family. Marlin

Selecteer het NRF52-Dk platform in de IDE rechtsboven in het browser scherm.

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

HET OPSTELLEN VAN USER EN HET UITSPLITSEN VAN USER STORIES NAAR CONCRETE TAKEN.

1. Kopieer de bestanden die in de html directory staan, naar de html directory van HomeSeer.

Business Workflow innovaties in SAP S/4 HANA

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Digitale en analoge technieken

Introductie. exacqvision M-Series

Onderzoekers zetten Samsungs Exynos 5-socs in voor supercomputer

ES1 Project 1: Microcontrollers

1. Hardware Installatie Installatie van Quasyscan...6 A. Hoe controleren of je een actieve internetverbinding hebt?...6 B.

Nieuwe Encyclopedie van Fryslân: Handleiding redacteuren

Veel begeleiding [vakdocent, instructeur]

Gebruikt u wel het meest geschikte platform voor uw workloads?

Joomla! 1.0 vs Joomla! 1.5

Widget Tip van de dag!

Nieuwe- en bijkomende functionaliteiten app V5.0

Calligra. Algemene inleiding. Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Waarom automatiseren?

De nieuwe generatie Toegangsbeheer.

Summa Cutter Tools. 1 Cutter tools. Met dit programma kunnen twee dingen geïnstalleerd worden:


Virtualisatie. en KVM. Oscar Buse 14 februari 2017 NLUG

college 2: Introductie

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek

Gentoo linux. Introductie. Gentoo is anders. LinuxFocus article number door Guido Socher (homepage) Over de auteur:

Net2 toegangscontrole

DATAMODELLERING RACI MATRIX

DÉ TOOL VOOR ONLINE VIDEOVERGADEREN VIA DE CLOUD

ActiveBuilder Handleiding

Het ideale font voor programmeurs

PR november 2009 Software, op PC gebaseerde besturing Pagina 1 van 5

Connect Social Business

Functionele beschrijving: Scannen naar AFAS Profit.

ARM VS X86. Whi t e Pa pe r

Transcriptie:

FPGA-makers op zoek naar de softwareontwikkelaar 11 juni 2012 Zowel Altera als Xilinx werkt aan hybride processoren van FPGA s en Arm-CPU s. De grote verschillen zitten in de manier waarop de bedrijven softwareontwikkelaars naar hun nieuwe platforms lokken. Met een fonkelnieuwe ontwerptool maakt Xilinx het makkelijker voor de systeemontwerper om IP-blokken aan elkaar te knopen en kunnen ook softwareontwikkelaars hardware-ip ontwikkelen. Vivado biedt echter geen duidelijk antwoord voor het programmeren van heterogene computerarchitecturen, iets wat aartsrivaal Altera al wel in de steigers heeft staan. Als we de uitgangsposities van beide bedrijven bekijken, blijkt een zekere ironie. Zowel Altera als Xilinx werkt aan het integreren van krachtige Arm- CPU s. Dat is een logische keuze. In FPGA-gebaseerde systemen is vaak een processor te vinden en die moet intensief communiceren met de programmeerbare logica. Of systeemarchitecten gebruiken een softprocessor zoals Microblaze (Xilinx) of Nios (Altera). Een gecombineerd device waar een krachtige processor hard ingebakken zit, bespaart dus kosten, energie en ruimte op het bord. Xilinix was in 2010 de eerste die met concrete plannen naar buiten kwam en sindsdien is de hypemolen goed op stoom gekomen. December vorig jaar was het zover en kwam het Zynq Extensible Processing Platform (EPP) op de markt. Altera was een stuk later. Pas oktober vorig jaar onthulde het plannen over zijn FPGA Soc - over het algemeen wordt het gezien als na-aperij van Xilinx. Op dit moment is er nog altijd geen product op de markt. De Zynq en de FPGA Soc lijken als twee druppels water op elkaar. Beide combineren een krachtige dualcore Arm Cortex-A9-CPU met de FPGA-logica van de respectievelijke bedrijven op 28 nanometer. Beide

beschikken daarbij over Arms Neon-extensies voor SimD-bewerkingen. In alle twee de aanpakken kunnen de subsystemen het werk- en cachegeheugen met elkaar delen. Allebei gebruiken ze een zeer breedbandige bus om de twee systemen aan elkaar te knopen. In beide kan de CPU de FPGA on-the-fly herprogrammeren. De Zynq-combinatie van dualcore Arm Cortex-applicatieprocessor en FPGA-logica is Xilinx paradepaardje. Er is echter een belangrijk filosofisch verschil. In Altera s aanpak zijn de twee subsystemen indien gewenst compleet onafhankelijk van elkaar te gebruiken. Xilinx positioneert zijn Zynq echter eerst en vooral als CPU. Bij een reboot start eerst de processor op, die vervolgens de programmeerbare logica configureert. De FPGA wordt daarmee meer een hardwareversneller en Zynq heeft meer weg van een heterogene multicore CPU die door de softwareprogrammeur beteugeld moet worden dan van een gekrompen en geïntegreerd bordje. Subset Het programmeren van heterogene multicore processoren is een onderwerp waar de industrie al een tijdje mee worstelt. Het wijkt immers radicaal af van de traditionele manier om software stapje voor

stapje in logische volgorde te beschrijven. Bij multicore systemen gebeuren er ineens allerlei dingen naast en door elkaar; de logische volgorde is weg en aannames blijken ineens niet meer zo vanzelfsprekend. Als de rekenkernen ook nog van aard verschillen, moet de programmeur bovendien bedenken welke bewerkingen op welke architectuur terecht moeten komen, onder meer rekening houdend met het brongebruik. Zo kon het gebeuren dat de Cell-processor voor de Playstation 3, bij zijn introductie in 2006 als supercomputer op zakformaat gezien, zijn beloftes aanvankelijk niet kon waarmaken. De CPU bestaat uit een vrij normale Power-processor voor de hoogniveaulogica en een aantal simpele maar zeer krachtige hardwareversnellers die het zware rekenwerk voor hun rekening nemen. De software op de Power-core moet de rekenlast verdelen over de versnellers. Dit programmeermodel bleek zijn tijd te ver vooruit - zeker omdat veel van de bestaande gamesoftware niet kon worden gebruikt. Er zijn de laatste jaren echter belangrijke stappen gezet in het programmeren van dit soort heterogene architecturen, voornamelijk aangejaagd door de fabrikanten van grafische processoren NVidia en AMD (Ati). GPU s kunnen een eenvoudige taak over honderden simpele cores uitsmeren en daarmee een grote rekenkracht aan de dag leggen voor niet-grafische doeleinden. Het verkopen van GPU s als rekenversneller is een lucratieve nieuwe groeimarkt, nu goedkope GPU s voor alledaags gebruik wel toereikend zijn. AMD heeft het met de overname van Ati in 2006 zelfs tot de spil gemaakt van zijn processorstrategie. In de loop der jaren doken verschillende initiatieven op voor het programmeren van GPU s, maar ze volgen min of meer hetzelfde model: een hoofdprogramma op de CPU delegeert simpele maar rekenintensieve taken naar de GPU. Langzaamaan beweegt de industrie naar een standaard hiervoor: OpenCL. De rekentaken - kernels in OpenCL-terminologie - worden hier in een subset van C

geschreven. De specificatie biedt een keur aan methodes om onder meer het parallellisme te beheren en geheugenmanagement te regelen, zonder de details van de onderliggende architectuur te hoeven weten. De kernels kunnen van tevoren worden gecompileerd als de systeemconfiguratie vastligt, of runtime als de applicatie meer porteerbaar moet zijn. Een GPU-specifieke compiler maakt dat rekentaken geschikt voor de grafische processor die voorhanden is. Ook IBM mikt vandaag de dag op OpenCL voor het programmeren van Cell. Concrete plannen OpenCL is ook de aanpak die Altera kiest voor zijn CPU/FPGA-hybrides. Hoewel de specificatie uit het GPU-domein komt, hebben de schrijvers - Altera is eencontributing member - getracht om hier overeen te stappen en iets op te stellen wat algemeen is voor parallelle rekenversnellers. Altera kwam eind vorig jaar met een eerste versie naar buiten van OpenCL-tooling voor zijn chips, waarmee softwareontwikkelaars dus componenten kunnen schrijven die op de FPGA draaien. Het ontwikkelen van de FPGA-software verschilt niet gek veel van de aanpak voor GPU-software, hoewel het volgens Altera wel helpt om wat over de onderliggende hardware te weten. De hardwareimplementatie zal er wel heel anders uitzien dan bij de GPU - het is een heel ander beestje - maar de programmeur hoeft zich hier niet mee te bemoeien. Op dit moment verkeert het OpenCL-programma van Altera nog in de bètafase. De tooling is alleen beschikbaar voor geselecteerde partners en er valt nog wel aan de efficiëntie te schaven. Er is er nog geen beslissing gevallen over het in de markt zetten van de tooling. Het ligt voor de hand dat Altera deze in zijn standaard Quartus II-omgeving zal opnemen. Ook bij Xilinx staat OpenCL op de radar. Tot nu toe heeft het zich echter geen groot fan getoond van de standaard. Er zijn dan ook geen

concrete plannen naar buiten gekomen. Het bedrijf meldt er wel mee bezig te zijn, maar dat het nog te vroeg is voor OpenCL. Het zegt niet of het er een duidelijke toekomst in ziet. Miljoenen dollars Met Vivado heeft Xilinx wel een compleet nieuwe ontwerpomgeving. De tool, waar vier jaar aan is gesleuteld en die mede door een aantal acquisities tot stand is gekomen, moet de bestaande ISE-omgeving op den duur volledig vervangen. Het bedrijf durft zelfs zo ver te gaan om een productiviteitsverbetering tot wel vier keer te claimen. Daarbij is Vivado bedoeld voor alle programmeerbare devices - dus niet alleen FPGA s maar ook de Zynq en de 3D-hybrides, benadrukt het bedrijf keer op keer. De tool is IP- en systeemcentrisch opgebouwd: systeemontwerpers kunnen naar hartelust IP-blokken op grafische wijze toevoegen, configureren en met elkaar integreren tot nieuwe IP-blokken, die samen met de constraints, testbanken en documentatie in een bibliotheek te plaatsen zijn. De omgeving neemt de gehele plaats- en routeerstap en RTL-generatie voor zijn rekening. Onder water worden alle acties via een Tcl-interface gereflecteerd voor de hardcore scripten commandoregel-adepten en voor communicatie met andere EDAtooling. De simulatiesnelheid is met gemiddeld een factor drie verbeterd. Ook in Vivado is er iets voor de softwareontwikkelaar te vinden. De meest in het oog springende nieuwe feature is de mogelijkheid om C-, C++ of SystemC-functies te compileren naar RTL voor de FPGA. Deze AutoESL-component zullen softwareontwikkelaars makkelijk op kunnen pikken. In de de basis is het een Eclipse-gebaseerde omgeving om software te schrijven. De ontwikkelaar kan hierin als optie kiezen om een functie naar RTL te compileren. Deze functionaliteit komt van het begin 2011 overgenomen bedrijf AutoESL Design Technologies - overigens na een lange vrijage waarbij Xilinx miljoenen dollars in de start-up pompte.

Volgens Xilinx zijn er slechts enkele restricties aan de code die AutoESL aankan, voornamelijk rond dynamisch geheugengebruik. Zolang dat vermeden wordt, is RTL-generatie mogelijk. Zelfs objectoriëntatie is geen probleem. De tooling zoekt zelf de mogelijkheden voor parallellisme op en houdt rekening met de specifieke eigenschappen van de gebruikte FPGA. Ook kan de gebruiker de parameters configureren die voor de hardwaregeneratie van belang zijn. Met AutoESL kan de programmeur dus naar hartelust experimenteren met het delegeren van softwarefuncties naar de FPGA. Een expliciete scheiding tussen software- en hardwarefuncties zoals in OpenCL is er echter niet. Het beheer over het parallellisme zit in de aanpak van de tooling, terwijl dit bij OpenCL veel meer in de code wordt ondergebracht. Xilinx positioneert de nieuwe feature dan ook niet zozeer voor de co-ontwikkeling van hardware en software, maar meer als een nieuwe manier om de hardwareblokken te ontwikkelen. Algoritmes schrijven gaat nu eenmaal een stuk sneller in software. De ironie is dus dat Xilinx vandaag de dag een - naar eigen zeggen - heterogene multicore CPU op de markt heeft zonder duidelijke aanpak om deze als zodanig te programmeren, terwijl Altera die aanpak wel heeft maar nog geen product - op een simulatietarget na. Het is natuurlijk vroeg, maar de eerste klap is nog steeds een daalder waard - zeker bij het aantrekken van een nieuw publiek. Terug naar overzicht