Gpu's bieden enorme mogelijkheden. Supercomputers worden ingezet voor de analyse van grote hoeveelheden data, zoals met de molecuul-simulaties van Amber maar ook voor het vinden van olie- en gasvelden. Er zijn echter nog geen toepassingen die niet met cpu's kunnen worden uitgevoerd, en het is ook nog eens een behoorlijke verandering voor programmeurs.
Met parallelle verwerking kunnen veel problemen echter wel sneller worden opgelost, en, nog belangrijker, het rendement van gpu's ligt hoger. De voornaamste reden dat cpu-cores niet veel sneller meer zullen worden, is dat ze anders te veel energie verbruiken. Een gpu kan per watt meer berekeningen uitvoeren dan een cpu, waarvan grote delen bij het verwerken van parallelle data onbenut blijven - maar wel energie verbruiken. Datacenters verbruiken bijna net zoveel energie voor het afvoeren van warmte als voor de voeding van processors, maar ook bij smartphones en laptops is energieverbruik een zeer zwaarwegend criterium. Elke winst op dit terrein is dus meegenomen.
Intel bracht zoals gezegd de Xeon Phi uit, maar ook de consumentenchips van dit bedrijf beschikken tegenwoordig over een degelijke gpu, met DirectX 11-ondersteuning en daarmee ook met ondersteuning voor OpenCL en DirectCompute. De Haswell-cpu's die volgend jaar verschijnen, zouden opnieuw een snellere gpu aan boord hebben.
Ook AMD's Fusion-apu's herbergen zowel een cpu als een gpu. De Llano-apu's zijn onlangs opgevolgd door de Trinity-chips, maar op de Fusion Developer Summit werd de volgende generatie alweer aangekondigd. De Steamroller-apu's, die volgend jaar moeten verschijnen, zijn vooral interessant omdat cpu en gpu het geheugen volledig kunnen delen. Daarmee wordt het makkelijker om voor een bepaalde bewerking de cpu of juist de gpu te gebruiken, terwijl de resultaten van een berekening voor beide componenten toegankelijk zijn.
Hoewel we het vooral over desktops en laptops hebben gehad, bewijst de deelname van Imagination en ARM aan de HSA-foundation dat heteregeneous computing ook op smartphones en tablets toekomst heeft. De razendsnelle maar specialistische en niet erg flexibele fixed-functionhardware, zoals Intels QuickSync, laten we maar even buiten beschouwing: gpu's zijn immers alomtegenwoordig. Het leeuwendeel van alle toekomstige cpu's zal een gpu aan boord hebben, er is een installed base van honderden miljoenen videokaarten en ook smartphones krijgen steeds krachtiger gpu's in hun soc's.
De vraag is dus met welke applicaties de consument tot aanschaf zal worden verleid. Volgens Microsoft gaan aanraakgevoelige schermen, gezichtsherkenning en 3d-beelden een grote rol spelen, zo liet het bedrijf op AMD's conferentie weten, en uiteraard zijn dat allemaal toepassingen die uitermate geschikt zijn voor throughput-processors - oftewel gpu's. Andere velden waar de extra rekenkracht van pas kan komen zijn augmented reality en biometrische herkenning. Zo kan je denken aan het sorteren van homevideo's aan de hand van de gezichten en stemmen die erin voorkomen, of aan Googles Project Glass, dat bijvoorbeeld naadloze graphics over afbeeldingen van een gebouw kan projecteren, zodat je kan zien hoe iets er vroeger uitzag of hoe iets eruit zou kunnen zien. Al deze toepassingen zullen zich echter nog in de praktijk moeten bewijzen.
Voor een echte doorbraak zal vermoedelijk toch het programmeren voor de gpu gemakkelijker moeten worden. Intel denkt dat gpu's met x86-ondersteuning een goede oplossing zijn, AMD werkt aan Fusion-apu's waarbij gpu en cpu hetzelfde geheugen gebruiken, en Nvidia is met zijn Cuda-platform in elk geval ervaring aan het opdoen. Er zijn dus in elk geval een aantal bruikbare mogelijkheden, en daarmee komt het lot van general purpose-gpu's nu in handen van de ontwikkelaars te liggen. Als zij het heterogene programmeren omarmen, kunnen we in de komende jaren een grote vlucht voor de geparallelliseerde toepassingen verwachten.
Microsoft is hier hard mee bezig met hun C++ AMP. Met de integratie in Visual Studio 2012 (o.a. GPU debuggers) moet het maken van software die zowel op CPU als GPU draait een stuk makkelijker worden.Voor een echte doorbraak zal vermoedelijk toch het programmeren voor de gpu gemakkelijker moeten worden.
[Reactie gewijzigd door Matis op donderdag 2 augustus 2012 09:24]
Bron: http://blogs.msdn.com/b/n...-world-quot-in-c-amp.aspx#include <iostream>
#include <amp.h>
using namespace concurrency;
int main()
{
int v[11] = {'G', 'd', 'k', 'k', 'n', 31, 'v', 'n', 'q', 'k', 'c'};
array_view<int> av(11, v);
parallel_for_each(av.extent, [=](index<1> idx) restrict(amp)
{
av[idx] += 1;
});
for(unsigned int i = 0; i < av.extent.size(); i++)
std::cout << static_cast<char>(av(i));
}
[Reactie gewijzigd door erikloman op donderdag 2 augustus 2012 12:18]
[Reactie gewijzigd door RSpliet op donderdag 2 augustus 2012 12:58]
Als ik het goed heb gelezen op phoronix plant AMD dit ook en leent de door de Apple ontwikkelde Clang (http://en.wikipedia.org/wiki/Clang) hier zich ook uitstekend voor.De charme van C++ AMP is dat de programmeur zich niet met deze zaken hoeft bezig te houden. Alles schrijf je in C++ en de rest wordt door de compiler en library geregeld.
GCC is gewoon een 15 jaar oud product. Compileert geweldig van C naar binary, maar qua maintainability is de code niet zo sterk. LLVM(/Clang) leent zich er beter voor omdat het is gebaseerd op LLVM, een intermediate representatie waar je makkelijk mee naar de GPU's ISA kan vertalen. Weet niet wat er politiek achter steekt, maar gebruik van LLVM verbaast mij anno 2012 niet veel.Als ik het goed heb gelezen op phoronix plant AMD dit ook en leent de door de Apple ontwikkelde Clang (http://en.wikipedia.org/wiki/Clang) hier zich ook uitstekend voor.
Blijkbaar was er rond GCC heel wat politiek en ideologisch gedoe die innovatie op dat vlak wat tegenhield.
Daar staat tegenover dat AMD als enige fabrikant momenteel OpenCL 1.2 ondersteunt. nVidia steekt nog bij 1.1. Feit is dat Khronos documenteert hoe zaken moeten werken, en daaromheen kan je dingen doen in OpenCL die voor platform X wel werken maar Y niet. De hardware is niet hetzelfde, dus de ongedocumenteerde bij-effecten ook niet. Ik vermoed dat het Blender probleem net zo zeer in hun OpenCL kernel ligt als in AMDs drivers. Laat ik weer eerlijk zijn: ik heb geen AMD hardware om dit op te testen. Maar ik heb de indruk dat het meevalt en AMD momenteel harder pioniert op OpenCL gebied dan nVidia. Logisch, AMD heeft geen Cuda en de beste manier om daar tegenop te boksen is door de "open standaard" handschoenen aan te trekken. Deed nVidia ook 15 jaar geleden succesvol met OpenGL tegen glide!Dit gezegd zijnde het verhaal van AMD is wel leuk maar ook op vlak van drivers en dergelijke is AMD een ramp als het gaat over OpenCL. De Blender instituut heeft namelijk een render geschreven (cycles) die ook gebruik maakt van OpenCL, maar AMD heeft blijkbaar zo slechte drivers en compilers voor OpenCL dat het gewoon op hun toestellen niet werkt.
Het kan blijkbaar enkel maar overweg met heel kleine beperkte kernels terwijl de Nvidia kaarten er geen problemen mee hebben.
[Reactie gewijzigd door RSpliet op vrijdag 3 augustus 2012 03:24]
[Reactie gewijzigd door twop op zondag 5 augustus 2012 00:06]
Dat zit nog steeds vol met beperkingen, en als die worden weggewerkt in toekomstige versies dan krijgen we een versnippering van de markt. Neen, daar zit niemand op te wachten.Microsoft is hier hard mee bezig met hun C++ AMP.
cycle of reincarnation /n./ [coined in a paper by T. H. Myer and I.E. Sutherland "On the Design of Display Processors", Comm. ACM, Vol. 11, no. 6, June 1968)] Term used to refer to a well-known effect whereby function in a computing system family is migrated out to special-purpose peripheral hardware for speed, then the peripheral evolves toward more computing power as it does its job, then somebody notices that it is inefficient to support two asymmetrical processors in the architecture and folds the function back into the main CPU, at which point the cycle begins again.
Several iterations of this cycle have been observed in graphics-processor design, and at least one or two in communications and floating-point processors.
[Reactie gewijzigd door PjotterP op donderdag 2 augustus 2012 16:58]
[Reactie gewijzigd door A87 op donderdag 2 augustus 2012 11:15]
Op dit item kan niet meer gereageerd worden.
Populair: Tablets Samsung Websites en communities Mobiele telefoons Google Sony Games Microsoft Consoles Microsoft Xbox One
© 1998 - 2013 Tweakers.net B.V. Contact Over Tweakers Jouw privacy Algemene voorwaarden Cookies
Tweakers wordt uitgegeven door De Persgroep en wordt gehost door True