Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 42 reacties

Intel brengt volgend jaar een chip uit die bestaat uit een Xeon-processor, gecombineerd met een fpga van een derde partij. De processor is specifiek ontwikkeld voor datacenters en moet concurreren met onder andere ARM-chips.

Intel werkt momenteel aan de hybride chip, vertelde Diane Bryant van Intels datacenter-groep tijdens de Structure-conferentie van GigaOm. "We hebben samengewerkt met grote aanbieders om ze precies te geven wat ze willen". aldus Bryant. De fpga is zo gekoppeld aan de Xeon-processor dat deze onder andere het geheugen van de cpu direct kan benaderen. Dit moet tot snelheidswinst leiden ten opzichte van het simpelweg naast elkaar gebruiken van een processor met een fpga.

Dit laatste doet bijvoorbeeld Microsoft in de datacenters voor de Bing-diensten, bleek maandag. Bryant wilde niet ingaan op de vraag of Microsoft de komende Xeons gaat gebruiken. Fpga's kunnen geprogrammeerd worden om bepaalde algoritmes efficiënt af te handelen, en zodra de taak wijzigt, kunnen ze ge-herprogrammeerd worden. Dit maakt ze interessant voor gebruik in datacenters.

Niet bekend is van welke fabrikant de fpga's zijn die Intel inzet. Vorig jaar sloot Intel wel een overeenkomst met Altera, maar de fpga's zouden ook door bijvoorbeeld Xilinx of Latice Semiconductor geleverd kunnen worden. Intel ziet bij datacenters de concurrentie van goedkope en zuinige ARM-chips toenemen. Onder ander AMD gebruikt deze.

Moderatie-faq Wijzig weergave

Reacties (42)

Een grote en riskante stap, want om elke keer die dingen te herprogrammeren lijkt me een takke-klus. Ik zie meer mogelijkheden in de HPC markt, waar de Phi nu probeert een stukje van de taart te veroveren (maar die lijdt aan chronisch bandbreedte-gebrek).
Programmeren betekent in deze context niet dat er een mens aan te pas komt die dingen moet doen. Je moet dit meer zien als een programma die in het geheugen wordt geladen. Of te wel een ontwerp die in de chip wordt geladen. Die gebeurt in luttele micro seconden.
Klopt, maar dan moet je wel dat programma hebben. Dat kost nogal wat (extra) schrijfwerk, want ik betwijfel of die dingen x86-code lezen. In dat geval kun je beter iets in OpenCL brouwen, dat draait op videokaarten, of in AMDs geval ook op het GPU-deel van je CPU. Dat begint langzaam voet aan de grond te krijgen, en is denk ik (zonder ervaring met FPGAs) een stuk eenvoudiger voor de eindgebruiker.
Het is grappig dat je OpenCL vernoemt, want dat is idd de taal die ze willen gebruiken om FPGA aan te sturen.

Je schrijft een OpenCL kernel voor een parallelle taak en compileert die met een OpenCL compiler direct naar een FPGA "binary" die je kunt uploaden naar de FPGA.

Zo kan je een stapel OpenCL binary FPGA kernels op je schijf hebben voor tal van taken en gewoon on-the-fly uploaden naar de FPGA wanneer je het nodig hebt. (of zelfs meerdere tegelijkertijd als er plaats genoeg is in de FPGA).

bron: http://www.altera.com/pro.../opencl/opencl-index.html
OpenCL draait niet alleen op videokaarten maar ook op CPU's en FPGA's.

Het programmeren voor FPGA's is voor "gewone" softwareontwikkelaars de laatste jaren vele malen toegankelijker geworden.


Daarnaast wordt software voor datacenters en supercomputers (waar dit soort processors vooral zullen eindigen) niet geschreven door doorsnee eindgebruikers. Als er winst te halen is door FPGA's te gebruiken ipv GPU's, dan word daar in geinvesteerd door personeel cursussen te geven zo nodig.

[Reactie gewijzigd door knirfie244 op 19 juni 2014 14:39]

Of je nou iets opnieuw in OpenCV moet schrijven of opnieuw voor FPGA's, het maakt niet veel uit. Dan nog in hetzelfde context zijn FPGA's vele malen sneller wanneer goed gebruikt.

Het kan een hele interessante ontwikkeling worden aangezien FPGA's voor zijn taken ook ontzettend energie zuinig kunnen zijn. Ontwikkeling ervoor kan inderdaad lastiger zijn, maar de lange termijnswinst is hoger.

Deze oplossing met FPGA is dan ook niet voor de doorgaanse gebruiker, maar bijvoorbeeld voor complexe veelgebruikte algoritmes ( bing ) of voor bijvoorbeeld beeldherkenningsalgoritmes. Daarmee bedoel ik image search websites die er veel aan kunnen hebben.
pff natuurlijk hebben ze dat programma, het gaat om grote datacenters van aanbieders die op een paar handen te tellen zijn. MS gaat ermee aan de slag dus dan heb je he tover een serieuze partij die gewoon in die software investeert.
Dat kost nogal wat (extra) schrijfwerk, want ik betwijfel of die dingen x86-code lezen.
Niet zo onmiddellijk neen, maar er zijn wel mogelijkheden om een x86 based processor in een fpga te programmeren.
Je gaat dan eigenlijk het schema van de cpu programmeren in een fpga en dan heb je een cpu die je met x86 kunt programmeren.
bv. http://code.google.com/p/fpga-x86-processor/

Er zijn daarnaast ook gewoon C to hardware compilers waarmee je dus een fpga programma in C kunt schrijven. Echter is voor een fpga programmeren wel een andere gedachtegang nodig als wanneer je software programmeert. Een fpga gaat niet zoals een programma regel per regel de code uitvoeren.

Ik weet verder ook niet wat voor fpga's dit zijn, maar ik heb ooit (in een heel ver verleden) wel eens gewerkt met fpga's van xilinx waar volgens mij ook gewoon arm processors op geÔntegreerd waren.
Een grote en riskante stap, want om elke keer die dingen te herprogrammeren lijkt me een takke-klus. Ik zie meer mogelijkheden in de HPC markt, waar de Phi nu probeert een stukje van de taart te veroveren (maar die lijdt aan chronisch bandbreedte-gebrek).
Of je de code nu schrijft voor x86 en op HDD zet, of de code schrijft voor fpga en hem even erin flash met tool die op de HDD staat van desbetreffende computer, kwestie van paar seconden/minuten werk. Code schrijven zal meeste tijd kosten, flashen stelt niks voor, en de code schrijven moet je toch al in beide gevallen.

Ik was van de week aan kijken naar Psoc(ARM + mini fpga en fpaa), zelfde principe alleen dan staat die psoc helemaal onderaan en deze xeon helemaal bovenaan, psoc heeft cortex M0 + 8 beperkte marco cellen(zo worden de blokken genoemd in fpga) is echt minste wat je kan krijgen, maar is hetzelfde principe als intel nu gaat maken, dus CPU + FPGA.
Misschien riskant, maar het is de tweede dag op rij dat FPGAs genoemd worden icm servers. Gisteren liet MS nog weten dat ze bing een stuk sneller kunnen laten lopen dankzij FPGAs. Er is dus wel degelijk een markt voor dit soort systemen.
Misschien riskant, maar het is de tweede dag op rij dat FPGAs genoemd worden icm servers. Gisteren liet MS nog weten dat ze bing een stuk sneller kunnen laten lopen dankzij FPGAs. Er is dus wel degelijk een markt voor dit soort systemen.
Voor specialistische zaken zal het zeker werken.

Maar over het algemeen in het datacenter niet denk ik zeker met deze gedachte van Intel.

[q]
Intel ziet bij datacenters de concurrentie van goedkope en zuinige ARM-chips toenemen.
[/q[

Iedereen weet dat in meeste data centers gevirtualiseerd word. Daar is de ARM al perfect voor uitgerust, beter dan de x86.

Hoe gaat de FPGA om met virtualisatie een FPGA per VM?

IMO slaat Intel de plank mis. Als ze IMO niet snel actie ondernemen en iets anders en beters gaan bouwen zou Intel uit de markt geprezen kunnen gaan worden.
De x86 is niet de toekomst, ze hebben geluk dat Microsoft met Windows nog erg vasthoud aan de x86. Om de reden dat de oude software er op blijft lopen. Ze kunnen en durven niet gemakkelijk over te stappen zeker na de IMO flop van Windows RT.

Zodra Windows marktaandeel gaat verliezen zal dit ook een negatief effect hebben op Intel.
Ik ben er van overtuigd dat zodra de ARMv8 servers beschikbaar zijn er steeds meer bedrijven die Linux gebruiken op deze hardware zullen overstappen.
FPGA's virtualiseren nog niet, maar dat is best denkbaar. Dan moet je wel op een andere tijdsschaal denken. Als je bij Amazon een fysieke machine huurt voor 3 dagen mag je de FPGA herprogrammeren. Jouw kleine VM'tje wat samen met 25 anderen draait op een budgetaccount mag dat niet. Het omswitchen van de FPGA van de ene VM naar de andere kost teveel tijd.
Jawel hoor, dit wordt grotendeels gebruikt voor berekeningen. Zoals bitcoin mining vroeger GPU gebruikte om te minen kan fpga dat ook maar dan sneller en efficiŽnter. Het is eigenlijk eeg handig voor meerdere dingen in servers. Bijvoorbeeld hashing, berekenen of iets anders in dergelijke, firewall zoals pfsense kan ook een boost krijgen omdat hij bepaalde handlingen moet uitvoeren dat niet bepaald geschikt is voor een CPU. Uiteraard is hasing ook mogelijk zonder CPU te misbruiken.
Voor bitcoins zijn ASICs inmiddels al gemeengoed, die zijn specifiek gebakken voor 1 ding, en that's it. FPGAs zijn herprogrammeerbaar, en dus een stukje trager (en duurder!) dan ASICs, maar het werkt wel flexibeler.

FPGAs lijken me voor servers een nuttigere toepassing, omdat er nog wel eens wisselende belastingen zijn.
Kijk iemand die weet waar die het over heeft :)

Ik zelf ben bezig met schrijven van VHDL, Hiermee kan je FPGA's programmeeren. als dit uiteindelijk geprogrammeerd is, is het maar een kwestie van een paar seconden om dit in te laden in de FPGA. Zo kan je meerdere configuraties van een FPGA ergens opslaan, en deze inladen op het moment dat je die nodig hebt.

Zo kan je in de processor bepalen welke configuratie er op dit moment handig is dit zal anders zijn op het moment dat je beelden moet renderen dan op hetmoment dat er veel data moet worden omgeschreven.

ook kan ik me voorstellen dat je op zo'n manier bijvoorbeeld crpto algoritmes in een FPGA kan gooien zodat je data veilig kan wegschrijven zonder snelheidsverlies.
Nou, als de FPGA bij het geheugen in de CPU kan, dan kun je dus subtaken die in een FPGA niet per se sneller zijn dus gewoon extern in de CPU oplossen, en de stukjes die wel echt de moeite van het extra programmeerwerk waard zijn in de FPGA doen. Dit is dus het voordeel ten opzichte van een FPGA gewoon gebruiken (via PCI-e of zo bijvoorbeeld). De FPGA krijgt op deze manier ook de mogelijkheid om met van alles te communiceren.
Ze zijn echter specifiek ontwikkeld voor datacenters dus waarschijnlijk zal een algoritme worden geÔmplementeerd en alleen veranderd als er een nieuwere efficiŽntere is bedacht. Als het eenmaal is bedacht is het implementeren niet heel erg moeilijk.
Het heeft niets met riskant te maken. Het is enkel een afweging tussen de kosten en baten.
Goed testen is daar ook een onderdeel van.
Bij sommige toepassingen zijn de baten vele malen groter dan de kosten.
Programmeren van een FPGA is hetzelfde als wat data in een stuk Flash geheugen laden.
Dat stelt weinig voor en alle FPGA makers hebben daar ook uitstekende tools voor.
Als het fout gaat op een FPGA systeem dan gaat het uiteraard ook heel snel fout, maar zoals gezegd kan je daarop uitvoerig testen.
Kan dit nog interessant zijn om Bitcoins mee te minen?
Een ASIC ipv fpga wordt in de bitcoin wereld gebruikt. Deze zijn niet herprogrammeerbaar, maar zijn wel aanzienlijk sneller/efficiŽnter. Zie bijv. butterflylabs. :)
Nee. Xeon processors zijn duur. De FPGA op de Xeon zal ongeveer hetzelfde kunnen als de FPGA van AMD. Daarbij is een AMD X295 een stuk goedkoper dan een Xeon processor.. Vroeger had Intel ook aparte co-processors zoals de 387 welke de 386 bijstond bij rekentaken.

Echter zullen de Xeon processors minder FPGA units bevatten dan een gemiddelde videokaart. Ik verwacht eerder dat bijvoorbeeld een afgeleide van de HD4600 videochip zal gebruiken welke Intel al toepast op de Haswells, alleen dan nu dedigated voor FPGA toepassingen..

Maar gezien de prijzen van Xeon processors en het aantal FPGA units zal dit niet interessant zijn voor mining toepassingen. Je moet het meer zien als een performance optimalisatie van voornamelijk rekentaken welke nu door de processor worden uitgevoerd welke je met deze processor kunt 'uitbesteden' aan de FPGA units zodat je processor andere taken kan uitvoeren..
Echter zullen de Xeon processors minder FPGA units bevatten dan een gemiddelde videokaart. Ik verwacht eerder dat bijvoorbeeld een afgeleide van de HD4600 videochip zal gebruiken welke Intel al toepast op de Haswells, alleen dan nu dedigated voor FPGA toepassingen..
Welke FPGAs op videokaarten heb je het over?
Shaders in FPGA zijn op z'n minst een interessante gedachte, maar inderdaad: nu is het allemaal hard logic.
Nee. CPUs zijn daar waardeloos voor, en FPGAs delven het onderspit tegen ASICs. Power consumption bij FPGAs is vaak geen prioriteit.

[Reactie gewijzigd door Cilph op 19 juni 2014 09:18]

Dit is interessant nieuws. Ik ben 99% zeker dat dit te maken heeft met Microsoft's Bing.
gebruikt Google ook fpga's voor hun zoekmachine?
Ik heb zo het idee van niet. Ondanks dat Google erg vooruitstrevend is, lijken ze op dit soort gebieden vaak te kiezen voor een geavanceerde schaalbare software. En loopt de hardware een beetje achter.
Google werkte altijd met standaard server hardware, eerst zelfs standaard consumenten hardware, omdat het goedkoop is en makkelijk te verkrijgen, maar of ze die strategie nog steeds toepassen weet ik niet, google is hoop veranderd afgelopen jaren.
Het is grappig om te zien dat hardware die zich in elektrotechniek/mechatronica profileerde verder groeit en meer toepassingen worden gevonden hiervoor. Wellicht komt het nog een keertje in onze broekzak? :P

Waarom zouden zij trouwens geen ASIC's gebruiken in datacenters? Is dat omdat de algoritme voor het zoeken/direct benaderen van resultaten vaak wordt geŁpdatet?
ASICS zijn specifiek voor 1 taak, 1 klant en mogelijk zelfs 1 locatie. Gezien ASICS in dat geval rond de 10000+ euro per stuk komen is de business case ervoor niet bestaand als je voor datzelfde geld er 40 XEONs ertegenaan kunt gooien. Bovendien is er een reŽel risico dat de rest van je infrastructuur je ASICS niet ten volle kunnen benutten.

Het belangrijkste punt is hier de shared memory architecture. Geen onnodig dupliceren van data en geen wachten op data overdracht. Eigenlijk een stap terug naar de vertrouwde co-processor uit de 386 tijd. Alleen nu met programmeerbare FPGA.
Best wel grappig eigenlijk: Intel geeft hiermee eigenlijk toe dat hun high performance general purpose processors niet goed genoeg zijn voor bepaalde doelen en dat (min of meer) dedicated silicon voor bepaalde taken sneller en efficiŽnter is.
Dat is toch ook logisch? met een keukenmes kan je ook een boom omhakken, maar met een bijl gaat het een stuk sneller. Het zou een beetje gek zijn als ikea of een andere verkoper van messen zou gaan roepen dat een mes even snel is.
En met een keukenmes kun je ook brood smeren (general purpose), dat gaat met een bijl wat lastiger (fpga).
Inderdaad.
Een grafische chip is natuurlijk net zo goed een specialistisch stuk silicium wat grafische taken een stuk sneller kan doen dan de general purpose CPU.
Dus het nieuwe is niet dat ze niet meer denken alles met een klassieke CPU te kunnen doen, maar dat ze de specialistische hardware nu zeg maar programmeerbaar op hardwareniveau maken (FPGA).
Dat is al heel lang bekend.
Maar de FPGA's zijn in de afgelopen 4~5 jaar met grote stappen vooruit gegaan tov de CPU's.
Wat miste was een goede integratie op een laag niveau van CPU en FPGA omdat een FPGA zwaar zuigen op sterk wisselende taken.
Met deze hybride oplossing heeft Intel daar denk ik een zeer goede troef in handen.
De meeste andere hybride oplossingen laten de communicatie verlopen via een PCIe bus wat de nodige impact heeft op de performance. De intel oplossing geeft de FPGA om vrolijk mee te graaien in het geheugen van de CPU. Daarmee kan je data voorbereiden met de CPU en het zware werkt door de FPGA laten uitvoeren.
Intel is absoluut niet de eerste met het idee om een FPGA en processor in 1 behuizing te stoppen. Ik maak al enige tijd gebruik van de Xilinx Zynq chips: deze bevatten een leuke ARM core en een Xilinx Virtex FPGA in 1 behuizing.
Dit is een erg leuke ontwikkeling, sommige taken laten zich erg makkelijk afhandelen door de FPGA.
Best wel grappig eigenlijk: Intel geeft hiermee eigenlijk toe dat hun high performance general purpose processors niet goed genoeg zijn voor bepaalde doelen en dat (min of meer) dedicated silicon voor bepaalde taken sneller en efficiŽnter is.
Uhm, geen enkele general purpose processors kan op tegen snelle FPGA die alleen maar 1 taak hoeft te doen en daar dus ook alleen maar voor route hoeft te worden, FPGA is chip waar draait om kloks en routen van hardware bloks, je kan zeg maar programeren met hardware, je kan de chip zo indelen dat meest efficiŽnte manier de taak word uitgevoerd en verder kan je alles achterwegen laten.

FPGA is snel in 1 taak uit te voeren die jij erin heb gezet. General purpose processors is hele andere type chip, als FPGA moet doen wat xeon doet zal FPGA het heel erg afleggen, pas niet eens in de grootste FPGA om daar maar mee te beginnen en snelheid zal zo traag zijn dat pentium 1(ben erg positief denk ik hiermee, verwacht eigenlijk veel langzamer) hem waarschijnlijk inhaalt.

Is echt appels en peren vergelijken, FPGA is alleen snel omdat je doelgericht de chip kan indelen voor bepaalde taak, general purpose processors moet alles ten alle tijden kunnen zonder herindelingen of zo.

Moet het zo zien, je legt speciaal weg aan voor transport bedrijf A (FPGA), kortste weg van punt A naar punt B zonder afslagen of zo, kan alleen van punt A naar B. Bedrijf B(general purpose processors) word er geen speciale weg aangelegd, die heeft de hele stad waar die doorheen moet rijden, duurt dus wat langer om bij punt B te komen maar hij kan ook naar alle andere locaties in de stad zonder dat er speciaal korte weg aangelegd moet worden.

[Reactie gewijzigd door mad_max234 op 19 juni 2014 10:54]

Het mooie aan FPGA's is dat je elk digitale hardware schakeling kan programmeren die je kan verzinnen.
Je kan bijvoorbeeld van je dood normale FPGA een ARM CPU of een ATmel AVR microcontroller in bakken, zo lang je maar genoeg logische blokken hebt in je FPGA. Enige nadeel is dat je alle analoge peripherals als ADC (analoog digitaal converter) en DAC moet missen, maar tegenwoordig hebben veel FPGA's een ADC / DAC vanaf de fabriek ingebakken.


Offtopic: op de HvA hebben wij dit jaar het vak Digitaal Ontwerpen, waarbij we ook VHDL programmeren

[Reactie gewijzigd door mohf op 19 juni 2014 12:23]

Dat kan, ja, maar zulke softcores zijn niet efficient. Dat is precies waarom je dit soort hybrides krijgt. Die ARM core in het bijzonder heb je als hardcore in een Xilink Zynq.
Het mooie aan FPGA's is dat je elk digitale hardware schakeling kan programmeren die je kan verzinnen.
Je kan bijvoorbeeld van je dood normale FPGA een ARM CPU of een ATmel AVR microcontroller in bakken, zo lang je maar genoeg logische blokken hebt in je FPGA. Enige nadeel is dat je alle analoge peripherals als ADC (analoog digitaal converter) en DAC moet missen, maar tegenwoordig hebben veel FPGA's een ADC / DAC vanaf de fabriek ingebakken.
Dat wil je niet zoals ik al uitlegde, als het al lukt want je komt echt wel in de knoop met timings en routing als je arm in fpga wilt proppen en dan houd je echt maar fractie van de snelheid over. Vraag is dus of het al kan met timing(etc) of er FPGA bestaan met genoeg macro cellen, en dan nog zal je er niks aan hebben omdat het te traag is. En zullen we maar niet over de kosten hebben, grote snelle FPGA kost even veel als i7.

Annaloog versie van fpga heet fpaa, fpaa = fieldprogrammable analog array. De Psoc waar ik het eerder over had paar posten hierboven heeft zowel mini fpga als mini fpaa aanboort.

Psoc heeft dus een general purpose processors een fpga en een fpaa aanboort, je kan dus hardware uitkiezen die beste bij je taak past of combinatie van alles door elkaar zodat je code efficiŽnter en sneller verwerkt word dan alleen met general purpose processor of alleen op FPGA. En natuurlijk kon je dat nu ook al doen maar zat je met allemaal losse compenten en hoop gedoe om alles aan elkaar te weven.
Dit lijkt mij helemaal geweldig. Er zijn op dit moment al fpga's specifiek voor functionele programmeertalen. Deze bevatten lambda abstracties etc als basisoperaties en zijn vele malen sneller dan de imperatieve implementatie van functionele programmeertalen op CPUs.

[Reactie gewijzigd door Spockz op 19 juni 2014 22:01]

Lambada abstracties :D

Vanuit hardware perspectief heb je voor lambda abstracties helemaal geen bijzondere hardware nodig. Het belangrijkste daaraan is dat ze anoniem zijn, wat voor de CPU geen bal uitmaakt.

Imperatieve programmeertalen werden zo'n doorslaand succes juist omdat ze direct aansloten op het model van CPU's. Er waren andere talen en andere hardware processing modellen (data flow nog bekend? Massief parallel) maar geen enkele efficiente combinatie.
Balen dat ze beperkt beschikbaar zijn. Ik gebruik nu al Xeon's voor geluidsherkenning, via Machine Learning. Afhankelijk van welk geluid je wil herkennen moet je de algoritmes iets tweaken, maar het eigenlijke programemren is Artificial Intelligence. En die AI zou net zo goed een FPGA kunnen programmeren.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True