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 , , 26 reacties

AMD wil begin volgend jaar de ATi FireStream 9170-gpgpu uitbrengen. De chip moet als co-processor met een maximumsnelheid van 500 GFlops complexe berekeningen gaan versnellen.

ATi Stream Computing logoDe chipmaker bracht bijna een jaar geleden zijn eerste FireStream-gpgpu op de markt, maar produceerde deze chip op zeer kleine schaal. De introductie van de FireStream 9170, gemaakt op basis van 55nm-technologie en voorzien van 2GB gddr3-geheugen, moet daar verandering in gaan brengen.

Volgens AMD kan de tweeduizend dollar kostende FireStream 9170 als eerste gpgpu 64bit floating point-berekeningen met dubbele precisie uitvoeren, waarbij het 320 streamprocessors kan inzetten. Opvallend is dat de kaart zelfs op volle snelheid niet meer dan 150W verbruikt. Bij de gpgpu wordt een sdk geleverd, waarmee ontwikkelaars hun applicaties met de chip kunnen laten samenwerken. AMD stelt dat niet-geoptimaliseerde programma's tot tien maal sneller berekeningen kunnen uitvoeren, terwijl aangepaste applicaties een nog grotere snelheidswinst behalen.

Gpgpu-computing is volgens AMD niet alleen interessant voor de wetenschappelijke wereld, maar ook voor zakelijke toepassingen waarbij rauwe rekenkracht essentieel is. Als voorbeeld noemt de chipfabrikant het uitvoeren van financiële analyses, seismologische berekeningen voor olie- en gaswinning en software voor gezichtsherkenning. Het softwarebedrijf ElcomSoft gebruikt zelfs bestaande gpu's van nVidia om wachtwoorden sneller te kunnen kraken.

Volgens Addison Snell van hpc-onderzoeksbureau Tabor Research kleven er nog wel enkele nadelen aan het inzetten van gpgpu's, zo schrijft ComputerWorld. Zo kan een chip als de FireStream wel berekeningen versnellen, maar door het latency-effect dat ontstaat bij het inzetten van meerdere processors in een systeem, bestaat het risico dat een gpgpu niet op tijd gevoed kan worden met verse data. Door de code van een programma met AMD's sdk te optimaliseren, moet dit probleem zoveel mogelijk uit de wereld worden geholpen.

Moderatie-faq Wijzig weergave

Reacties (26)

Hmm. Als die GPU's van tegenwoordig zo verschrikkelijk veel sneller rekenen, waarom concentreren normale processorbakkers zich niet op die technologie dan?
Als ik het goed begrijp kunnen we gewoon applicaties op de GPU ipv CPU laten draaien op deze manier. Alsd at zoveel sneller is, gooi die hele CPU er dan gewoon uit.
Waarschijnlijk mis ik iets, dus verlicht me :D
In zekere zin gaan de normale CPU's langzaam in de richting van GPU's. Waarom dacht je dat er tegenwoordig multi-core CPU's komen voor de gewone computers?

Qua pure rekenkracht zijn N simpele core's altijd effectiever dan 1 complexe core met N maal zoveel transistors. Het probleem is echter dat normale software in grote mate single-threaded is. En dan is er dus maar 1 core actief. Je kunt natuurlijk de software multi-threaded maken, maar in de praktijk is het toch heel moeilijk om al die cores aan het werk te houden... Zelfs in multi-threaded software is er meestal maar 1 thread ook daadwerkelijk actief, en zijn de rest idle. En dan is de complexe core toch weer effectiever.

Bij GPU's worden er pixels verwerkt. Daarvan zijn er miljoenen, en die zijn vaak behoorlijk onafhankelijk van elkaar. Zoiets is dus bij uitstek geschikt om parrallel af te handelen, en dus zie je daar honderden (shader) cores naaste elkaar aan het werk. Een programma als photoshop kan om dezelfde reden ook perfect schalen met meerdere cpu's. Voor een filter snijd je gewoon het plaatje in meerdere stukken, en laat die parrallel door de cores berekenen.

Wat betreft wetenschappelijk berekeningen hangt het er maar net vanaf. Sommige bewerkingen zul je heel goed parrallel kunnen uitvoeren, maar bij anderen zal het nauwelijks voordeel opleveren.

Het idee van een ander soortige CPU is trouwens niet nieuw. Vroeger had je de mathematisch co-processor, hetgeen gewoon een chip was die veel beter in staat was om FPU berekeningen te maken dan de normale CPU. Dat bleek zo nuttig, dat het tegenwoordig de CPU geintegreerd is. Met GPU's achtige super-parrallel cores, zou dat ook wel eens kunnen gaan gebeuren. Dat is één van de redenen waarom AMD ATI heeft gekocht. Om die GPU technologie in hun CPU's te kunnen integreren.
Allereerst is het ontwerp van een GPU geoptimaliseerd voor vector/matrix berekeningen in parallel. Een cpu kan ook steeds meer van dit soort berekeningen , maar moet ook veel andere berekeningen kunnen.

Ten tweede ligt voor processoren in PCs de instructieset min of meer vast op X86 en wordt vereist dat alle bestaande software blijft werken. Dit maakt het zeer lastig om naar een andere architectuur over te stappen. Daarnaast moet je software er ook voor aangepast worden. Sony's Cell is als het ware een streaming processor en om er alles uit te halen moet software op een andere manier geschreven worden.

Verder is er voor GPUs geen vaste instructieset als X86 welke de GPU moet spreken. De enige eisen zijn Direct3D en OpenGL ondersteuning. Ati/Nvidia hebben elke paar jaar een andere architectuur.
Er zit een groot verschil in GPU en CPU architectuur, simpel gezegd:
- CPU is multiple instructions on single data
- GPU is single instructions on multiple data

De GPU mist een heel stuk controle, memory sharing en synchronisatie wat wel in de CPU aanwezig is. Daarom is de GPU erg snel als je op een hele lange reeks data steeds de zelfde berekening wil doen, b.v. een schaduw uitreken op een rij pixels. De CPU is erg snel als je veel verschillende instructies wil uitvoeren op weinig data.

Op de laatste versie GPU's is tegenwoordig wel memory syngronisatie etc. mogelijk, maar daardoor was de Geforce 8 dan ook trager dan de opgaande lijn van de vorige Geforces.

Zie ook mijn plotje GPU (Geforce) versus CPU (Intel) floating point snelheid :) !

[Reactie gewijzigd door djexplo op 8 november 2007 16:14]

Jouw plotje of het plotje van GPU gems?
De gpu's kunnen alleen specifieke code versnellen (oid), terwijl cpu's manusjes van alles zijn. Windows op een gpu draaien kan dus (nog) niet.

[Reactie gewijzigd door Woutoud op 8 november 2007 15:56]

Windows is gebaseerd op de x86 instructieset (net als vrijwel ongeveer alle overige code voor consumentengebruik).

Die instructieset bevat veel ingewikkelde instructies, deze gpus ontberen deze instructieset en kunnen dus niet met deze software onderweg.

Feitelijk gezien is een gpu gewoon heel goed in de domme rekensommen en niet in de specifieke consumentenapplicaties (met media enzo)
Ik zeg High Arithmetic intensity

Lots of ops per word transferred
GPGPU demands high arithmetic intensity for peak performance
  • Ex: solving systems of linear equations
  • Physically-based simulation on lattices
  • All-pairs shortest paths
ja, je mist idd iets. Dit is alleen maar voor bepaalde soorten berekeningen (floating points als ik me niet vergis). Een CPU is meer een all-round verwerkingseenheid, die dus veel meer soorten berekeningen goed kan uitvoeren, maar geen uitblinker is in een bepaald soort berekeningen (afaik).
Moderne GPUs zoals de 8xxx serie van NVidia (en deze ATI kaart ongetwijfeld ook) kunnen ook prima overweg met integer berekeningen. Het enige vereiste is dat het algoritme behoorlijk paralelliseerbaar is, omdat je met een hoop threads 'zit' die je ergens voor moet gebruiken (en die bij voorkeur gelijksoortige taken doen)
Dat beperkt inderdaad de soorten berekeningen, maar lang niet meer zo erg als met vorige generaties.
Was het ook niet zo dat een GPU veel sneller is met floating point dan met integer berekeningen? Of kan een GPU uberhaupt wel integer berekeningen doen?
Of kan een GPU uberhaupt wel integer berekeningen doen?
Je kan een integer getal even goed in floating-point formaat opslaan. Een 32-bit floating-point getal heeft een 23-bit mantissa, waardoor integer getallen tot en met 24 bit lang exact kunnen worden voorgesteld.

Dus ja, als je een beetje oplet kan je heel wat algoritmes die met integers werken ook op de GPU uitvoeren.
Jep... een CPU is anders ingericht met een ander doel. Zo veel mogelijk van alles kunnen. Een GPU is bedoelt enkel voor berekeningen maken op grafisch gebied.

Het kan zijn dat als je bijv. Vista zou starten dat deze op een GPU enorm enorm traag zou starten. OF als vista als snel zou starten dan zouden de applicaties traag starten...
desalniettemin worden cpu ook steeds sneller voor bepaalde toepassingen. Dit kan door bijv sse extensies waardoor bij divx coderen en decoderen sneller loopt. Het sneller lopen is echter maar een fractie ten opzichte van specifieke cpu's die 1 of 2 taken hebben. Neem bijv een chip om hd signaal 1:1 te converteren.
Het idee is leuk, maar klopt niet helemaal zoals bovenstaande reacties al uitleggen. Het is wel mogelijk om een eenvoudigere versie van de in het artikel beschreven chip te integreren in de processor voor dat specifieke soort berekening. Deden ze jaren ook al, een co-processor in de processor integreren voor eenvoudige berekeningen en dergelijke.

Maar ja, het is maar net of er genoeg markt voor is. Als ze dit ook kunnen gebruiken voor bijvoorbeeld video encoding dan heeft het nog wel nut, maar ik denk niet dat de gemiddelde consumen er veel voordeel van heeft indien hun computer ineens financiële analyses een stuk sneller kunnen laten doen.
Dat is een FPU, een floating-point processing uit, die worden sinds de 486 idd geintegreerd. Maar floatingpoint getallen is één ding, shaderberekeningen zijn van een andere orde en complexiteit(hoewel daarongetwijfel ook fp-getallen in voorkomen)
Omdat het draaien van een operating system a-la windows geen rekenkracht vergt, maar wel heel veel taskswitches, algemene taken zoals verplaatsen van data in en tussen geheugens
Dmn..... hoop niet dat mijn baas hier lucht van krijgt.

Ik heb nu nog een excuus om dagelijks een half uur koffie te gaan drinken terwijl mijn PC'tje een hele berg optimalisatie matrixen staat af te rammelen. ;)

Maar alle gekheid op een stokje, dit is een mooie vooruitgang. Als ik zie dat wij op dit moment per dag gewoon uren aan rekentijd kwijt zijn aan het draaien van optimalisaties, heb je die 2000 euro er zo uit.
Heel mooie ontwikkeling. Met deze kaart wordt het grootste probleem van de general purpose GPU opgelost.

Het standaard tegenargument voor gebruikt van de GPU was altijd dat de floating precisie niet hoog genoeg was. Iedere wetenschappelijk berekening maakt gebruikt van 64bit floats, en kan niet eventjes met kleinere precisie werken, ongeacht hoe snel dat ook zou zijn. De afrond fouten worden dan gewoon onacceptabel groot in lange berekeningen. Dat is nu opgelost... Zou me niet verbazen als dit heel snel heel erg populair wordt.
Het zou mij heel erg verbazen als dit niet heel erg snel populair wordt.

Over precisie: Je kunt altijd een getal uitsmeren over meerdere bits om een arbitraire nauwkeurigheid te verkrijgen, waarmee de "oude GPU's" (zoals de Nvidia 8800GT :) ) toch ook geschikt zijn voor het nauwkeurigere werk. Met zo'n opsplitsing kun je ook integers aan die groter zijn dan de standaard maximum integer binnen bijv. C++. Toegegeven het is natuurlijker makkelijker als je standaard al 64bit ter beschikking hebt.

Een van de struikelblokken tot nu toe was (en is) volgens mij de complexheid om je programma's fatsoenlijk te paralleliseren voor GPU gebruik. Auto-parralelisatie wat momenteel nog in de kinderschoenen staat zal ben ik bang wel altijd beperkt blijven. Maar wie weet hebben we binnenkort wel compilers die zelf een matrixvermenigvuldiging A*x (met bijv. A een sparse matrix van dimensie 1.000.000 x 1.000.000) netjes in stukken kunnen hakken en weer aan elkaar kunnen plakken. Dat zou een enorme boost zijn voor een ieder die een set gekoppelde PDE's (Partial Differential Equations) probeert op te lossen. Voor Particle Tracking algoritmen levert zo'n nieuwe GPGPU direct winst op.

Voor mensen die meer willen weten over GPGPU en HPC zie de site:
www.gpgpu.org
Zo'n vaart zal het allemaal wel niet lopen. Eigenlijk een beetje te laat op de markt gekomen want de high end game pc's gebruiken al bijna evenwel rekenkracht.
En dan nog even wachten op het antwoord van Intel met GeForce ... en dan is hun effort weer teniet gedaan ... Ik denk dat AMD en ATI hun tijd gehad hebben betreffende goede prijzen. Intel is zwaar aan een inhaal beweging bezig terwijl zij meer professionele hardware leveren en al meer bewezen hebben dan AMD en ATI tesamen.
Intel met GeForce ???

Volgens mij werken intel en nvidia niet echt samen ofzo hoor.
AMD stelt dat niet-geoptimaliseerde programma's tot tien maal sneller berekeningen kunnen uitvoeren, terwijl aangepaste applicaties een nog grotere snelheidswinst behalen.
Vreemd iets. Als je je huidige C programma pakt en je gooit hem in een stream, wedden dat het alleen maar langzamer is!!

Het is juist die optimalisatie / parallellisatie die je moet toepassen wat het zo snal maakt. dus dat niet geoptimaliseerde programma's tot tien keer sneller zijn is echt weer zo'n bullsh*t verkoop praatje.
In ComputerWorld (zie link in hoofdtekst) staat het addertje ook expliciet beschreven:
Patricia Harrell, director of stream computing at AMD, said that with the right kind of application, the FireStream chip can deliver up to a tenfold improvement in performance without any special application tuning, and the improvement would be greater with tuning.
Als je C programmatje zegt: doe 100 keer dezelfde handeling onafhankelijk van de andere handelingen dan zal die winst wel gehaald kunnen worden.
Ja ik weet hoe het werkt. Werk zelf ook met GPGPU alleen dan niet ATI's CTM maar nVidia's CUDA. En 100x dezelfde handeling is vele malen te weinig. Dan kan je je memory latency niet wegwerken. Omslagpunt ligt iets hoger. Maar goed gaat om het idee.

Ik wijs iedereen er nog maar eens op:

Draadje over GPGPU (GOT)

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