Wellicht dat de andere materialen die ze nu gebruiken dat toelaten ja. Het blijft wel een schril contrast dat niet alleen door materialen verklaard kan worden. Nvidia draaide wel al op hogere kloksnelheden, maar het verschil is nu wel heel erg groot.
Het enige andere dat ik kan bedenken is dat een van de onderdelen van de architectuur onder handen is genomen qua ontwerp waardoor dat sneller kan tikken en het traagste deel van hun pipeline dus korter is geworden.
martijn_tje schreef op zondag 10 juli 2016 @ 19:57:
[...]
Denk zelf dat het vooral aan verschillen in achitectuur.
Intel had de 2e helft van het P4 tijdperk 2 architecturen naast elkaar lopen op het zelfde proces. De hoog geclockte P4 familie en de lager geclockte pentium M familie waar de core architectuur een voortboorduursel van is.
De architectuur zelf is het niet. Pascal verschilt nauwelijks van Maxwell, dus het verschil zit op het silicon niveau. Maxwel liep wel al harder dan GCN, maar niet zó veel harder als Pascal nu.
Yamotek schreef op zondag 10 juli 2016 @ 20:55:
Zou het niet aan de kortere pipeline kunnen liggen? Hierdoor is informatie er natuurlijker sneller weer uit en kan er sneller informatie in (precies de definitie van de kloksnelheid natuurlijk).
Dus architectuur als ik het goed begrijp.
Nee, pipeline staat niet gelijk aan kloksnelheid zoals jij het hier uit legt. Het is niet zo dat een kortere pipeline je kloksnelheid omhoog schroeft; een kortere pipeline kun je vaak wel op hogere kloksnelheid laten draaien. Semantiek, maar wel een belangrijk verschil.
Nu is Nvidia's pipeline in theorie inderdaad iets korter, met name doordat deze deels fixed is. Echter denk ik niet dat daar het probleem zit. Los van het feit dat ik denk dat 14LPP gewoon niet harder wil in dit geval, denk ik eerder dat AMD gewoon een enkel onderdeel niet harder kan laten tikken.
Verwijderd schreef op zondag 10 juli 2016 @ 22:36:
Dat is nu waar ik benieuwd naar ben: in welke mate het komt doordat ze van verschillende bedrijven komen en in welke mate het met de architectuur en keuzes van AMD nemen. Ik heb er nog weinig over kunnen vinden.
Hardware ontwerpen lijkt in eerste instantie op software ontwerpen. Je weet wat er in gaat, je weet wat je er uit wil hebben en het tussenliggende moet je zo snel mogelijk doorlopen. Dat is de (macro) architectuur. Vroeger waren architecturen heel saai; men had toen fixed pipelines, waarbij er telkens exact dezelfde stappen in dezelfde volgorde werd doorlopen. De rekeneenheden waren dan ook vrij ingewikkelde dingen omdat ze allerlei dingen moesten kunnen doen. Tegenwoordig gaat dat heel anders, nu bestaat er voor zo'n beetje elke taak een aparte rekeneenheid (vandaar ook dat veel D3D features nieuwe hardware vereisen) en worden de taken vooraf naar de goede rekeneenheid gestuurd. Lastiger te implementeren, wel vele malen flexibeler en efficiënter.
Vervolgens moet die architectuur in hardware geïmplementeerd worden, dit is een stuk lastiger. Het hoe en wat gaat te ver denk ik. Er is wel genoeg leesmateriaal over hoe een chip werkt; wat een transistor is, wat gates zijn, enzovoort. Ik denk dat de meesten die in de een of andere vorm Informatica hebben gestudeerd dat ook allemaal wel gehad hebben (de basis principes tenminste, in de praktijk is het uiteraard iets ingewikkelder

), ik wel in elk geval. Enfin, naast de macro architectuur heb je een micro architectuur en de implementatie daarvan.
Als dat eenmaal allemaal is uitgevogeld moet er ook nog een keuze gemaakt worden wat betreft de materialen die gebruikt moeten worden om dit alles te maken. Klinkt triviaal, maar dat is het niet. De eenvoudigste voorbeelden van hoe catastrofaal slechte keuzes kunnen zijn liggen helaas bij Nvidia; bij G80 had je het underfill probleem en bij Fermi zat er van alles fout.
Ik vraag me verder af of dat het gebruikelijk is dat een bepaald percentage van de transistors op zo'n die het niet doet en of dat AMD en NVidia voor low-end kaarten een ander percentage nemen dan voor highendkaarten. Of is het een alles of niets fenomeen: stukken worden enkel gebruikt oor een die indien er geen enkel foutje wordt gevonden. Ik ben dus benieuwd naar de technische details. Ik weet niet of dat iemand hier er meer verstand van heeft of kan verwijzen naar interessante artikelen hierover. Ik vraag het maar eens, niet geschoten is altijd mis.
Dat is heel normaal ja.
Bij het "bakken" van een chip kan de apparatuur foutjes maken. Al het bovenstaande gebeurt op microscopisch niveau; 1 nm is 1 miljardste van een meter. Voor de "bakkers" (TSMC, GloFo) is het zaak dat ze de wafers zo snel mogelijk door hun productie proces stouwen zodat ze genoeg volume hebben. Hoe groter de wafer, hoe meer tijd het kost. Zoals met zo veel dingen is haastige spoed echter zelden goed en maakt de apparatuur dus foutjes. Dat kan een kras op een wafer zijn, dat kan een metalen verbinding zijn die scheef wordt getrokken (en zo dus een soort van kortsluiting veroorzaakt) of juist niet wordt getrokken, dat kunnen restjes metaal zijn. Niet al die foutjes betekenen echter dat de chip waar dat foutje in zit volledig onbruikbaar is. Vooral niet met de GPU's van tegenwoordig, die uit heel veel afzonderlijke onderdelen bestaan die vaak apart uitgeschakeld kunnen worden. Of het betekent dat je een onderdeel gewoon wat trager moet laten tikken bijvoorbeeld omdat met een hogere kloksnelheid meer "lekt" tussen de transistors.
Lompe uitleg met behulp van voedsel: een 300mm wafer is eigenlijk niet veel meer dan een pizza van 30 centimeter. Vooraf weet je al dat je die pizza in vierkante stukken van allemaal exact dezelfde grootte op gaat delen. Nu wil je uiteraard dat elk stuk dezelfde ingrediënten krijgt en dat wil je zo snel mogelijk doen. Als je nu ergens een stukje ui minder hebt vind jij (en de eter) dat niet zo erg, je hebt wel nog steeds de saus, de salami en alle andere ingrediënten. Mis je echter de saus dan lijkt dat stuk natuurlijk nergens op en gooi je het weg. Mis je zowel de ui als de salami dan gooi je dat waarschijnlijk ook weg, want dat zijn twee foutjes en dat is te veel om er nog iets van te maken.
Ik laat het allemaal eenvoudiger klinken dan het is, dit artikel gaat al vrij diep voor een "mainstream" site, dus als je meer wilt weten:
http://www.anandtech.com/...s-technology-and-industryYamotek schreef op zondag 10 juli 2016 @ 22:56:
Ja dit heeft er zeker mee te maken, sterker nog Async Compute in de architectuur plaatsen zorgt ervoor dat als er dus een applicatie is die het niet ondersteund de kaart ook minder efficient loopt dan een kaart zonder async compute.
Echter zodra het ingeschakeld wordt werkt de kaart efficienter dan de kaart zonder AC (wat je terug kunt zien in de benchmarks).
Dit is niet helemaal waar. De driver maakt namelijk ook gebruik van een deel van de infrastructuur die een programmeur met AC zelf gebruikt. De driver bepaalt vooraf al wat er naast elkaar kan gebeuren, echter bepaalt AMD's driver niet vooraf wat waar terecht komt in de GPU. Nvidia doet dat juist wel, dat is wat HyperQ is en doet.
In beide gevallen worden de workloads echter gesplitst op basis van welke rekeneenheden deze moeten verwerken. Het verschil zit vooral in latency; die is bij AMD hoger in DX11 omdat de driver meer werk moet verrichten, terwijl deze bij Nvidia juist in DX12 hoger is omdat HyperQ niet genoeg inzicht heeft in wat elk deel van de GPU aan het doen is; en het inzicht dat het wel heeft kost al latency an sich.