Tråden som skvallrar om Polaris.

Permalänk
Datavetare
Skrivet av Dalton Sleeper:

Polaris skulle väl introducera någon slags geometrimodul/geometriprocessor, de lär ju inte addera den utan anledning...

Det har alla Radeon-kort haft sedan man stoppade in stöd för transform & light (Radeon 7x00). Däremot så är geometrikapaciteten i dagens GCN en av de saker där Nvidias kort är rejält mycket snabbare (t.ex. kapacitet för tessellation) så är ju helt rätt av AMD att specifikt fokusera på denna punkt med Polaris.

Polaris har ju också en förbättrad komprimeringsteknik för "frame-buffer", något som infördes i GCN1.2. Samma sak hände mellan Kepler (som fick sådan komprimering) och Maxwell (där effekten av komprimering ökade rätt rejält).

Sedan är det också känt att man förbättrat tekniken kring att tidigt detektera trianglar som inte kommer påverka den slutliga scenen. Tekniker som back-face culling har funnits sedan Voodo 1 korten, men här lär det finnas massor med heuristik och smarta algoritmer att ta till. Jämför med CPUer, "branch prediction" har ju funnits sedan ursprungliga Pentium, ändå är det något varje ny CPU-design fortfarande får små förbättring i.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Det har alla Radeon-kort haft sedan man stoppade in stöd för transform & light (Radeon 7x00). Däremot så är geometrikapaciteten i dagens GCN en av de saker där Nvidias kort är rejält mycket snabbare (t.ex. kapacitet för tessellation) så är ju helt rätt av AMD att specifikt fokusera på denna punkt med Polaris.

...

Tackar för rättningen, en uppdaterad geometriprocessor lär det ju vara. Skummade på slides förut med en stor "NEW"-blaffa, men användning av (geometri)processorn är ju inte nytt, sedan hur modifierad den är återstår att se.

Permalänk
Medlem

@Yoshman Jag funderar på om det kan ha varit så att P10 skulle ha fått HBM egentligen och att det var det minnet som drog upp effektiviteten till 2.5, men nu när det inte längre är aktuellt med HBM så har man gått ner till 2x. Det finns också de som hävdar att det är skillnad på vad Lisa Su säger (2x) och vad Raja Koduri säger (2.5x).

Jag hittade förresten patenttexten jag skrev om. Jag tror du är i en bättre sits att få ut något av den än vad jag är. Den här typen av text får mitt huvud att göra ont såhär dags...

Förresten: Vad gäller antalet shaders på P10 och P11 så är siffrorna jag oftast ser 2560 resp. 1280 för de fulla kretsarna. Var ryktas det om 2048?

Permalänk
Datavetare
Skrivet av Gruarn:

@Yoshman Jag funderar på om det kan ha varit så att P10 skulle ha fått HBM egentligen och att det var det minnet som drog upp effektiviteten till 2.5, men nu när det inte längre är aktuellt med HBM så har man gått ner till 2x. Det finns också de som hävdar att det är skillnad på vad Lisa Su säger (2x) och vad Raja Koduri säger (2.5x).

Jag hittade förresten patenttexten jag skrev om. Jag tror du är i en bättre sits att få ut något av den än vad jag är. Den här typen av text får mitt huvud att göra ont såhär dags...

Förresten: Vad gäller antalet shaders på P10 och P11 så är siffrorna jag oftast ser 2560 resp. 1280 för de fulla kretsarna. Var ryktas det om 2048?

2048 var något jag gått om bakfoten (eller så är det gammal information), det senate ryktet jag sett pratar om 36 CU och totalt 2304 stream processors i Polaris 10. Om det stämmer är man ur den aspekten klart närmare 390 än 380X, fast slutresultatet beror som sagt väldigt mycket på frekvens och är övertygad om att frekvensen för Polaris generellt kommer vara högre än 300-serien.

Satt och tittade lite på patent i går kväll och verkar som just lång strömförbrukning är ett huvudfokus denna generation om man ska döma av patenten (fast är väldigt jobbigt att försöka begripa vad som står i patent, har ibland svårt att helt förstå texten i de patent jag själv skickat in efter det att patentingengörerna ändrat till patentfikonspråket )

Det patent du länkar till nämner i.o.f.s. en wavefront bredd på 64 fördelat över 4 enheter per CU. Nu kan det mycket väl endast vara ett exempel och Polaris kan använda en annan fördelen, men är just den fördelningen som GCN1.0 till 1.2 använder. Nvidia har en smalare bredd här, deras "warp" är består av 32 trådar.

Detta nämns

"Some embodiments provide a computing system configured to execute multiple threads in parallel including a plurality of single instruction multiple data (SIMD) units and a plurality of issue units. The SIMD units have differing numbers of arithmetic logic units (ALUs), such that each SIMD unit can execute a different number of threads."

Här är just stället där Pascal skiljer sig från tidigare, antal trådar per SIMD är minskat till två i Pascal, ner från fyra. Tidigare GCN har 4 enheter per CU, så 16 trådar per SIMD-enhet. Man mappar trådarna i "wavefront/warp" till ALUs och om antal trådar en SIMD enhet kan hantera inte är jämt delbar med antal aktiva trådar får man minskad effektivitet (man vill därför alltid försöka använda alla 32/64 trådar). Här är

Den trend jag sett är att: fördelen att gå "brett" verkar vara att man når högre kapacitet med en viss transistorbudget, fördelen att gå "smalt" är att det är lättare att nå nära teoretisk max och verkar också vara lättare att skala en sådan design mot högre frekvenser. Så båda modellerna har fördelar och nackdelar, blir spännande att se hur man tänkt i Polaris här och än mer spännande att se resultatet i praktiken!

Patentet pratar ju om möjligheten att använda ALUs i olika konfigurationer med olika bredd, så man har kanske kommit på något smart att kunna hoppa mellan en "smalare" modell (frågan är hur man drar nytta av detta) och en "bredare" modell beroende på last.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

@Aleshi: Maxwell har ganska mycket snabbare CUDA-kärnor, men den största delen i detta är nog främst att man förenklade SM-designen en del vilket möjliggjorde högre frekvenser. Man verkar gjort samma manöver igen med Pascal, ännu enklare SM-enheter och ännu högre frekvens.

Nog? Prestandan är 25% högre per kärna och Hz. Och det enligt Sweclockers prestandaindex. Och som du säkert förstår så jämnar ett index ut skillnader lite då det alltid finns andra flaskhalsar så skillnaden är på många håll större än så.

Skrivet av Yoshman:

Ser däremot inte att GCN fått något generell prestandaförbättring via drivers sedan den stora förbättring man gjorde strax efter lanseringen av 290. Visst har enskilda titlar fått lyft jämfört med lanseringsprestanda, men det gäller även för Nvidia (jämför prestanda vid lansering av Ashes of the Singularity och Hitman med hur Nvidia idag presterar jämfört med AMD, i Hitman låg 970 på 380X nivå initialt och nu är man på 390 nivå).

Nä, du borde inte se någon generell förbättring. Bara förbättringar i de spel där de går in och aktivt försöker göra något åt overheaden. Som jag sa, AMDs nuvarande kort har mycket mer outnyttjad prestanda än vad Kepler hade. AMD har större overhead och får anpassa mer efter varje spel som kommer för att försöka få ut så mycket som möjligt av detta. Kan de minska den overheaden till nVidias nivå och utnyttja sina shaders lika effektivt som nVidia gör i Maxwell så snackar vi långt större förbättringar än de 25% som vi såg mellan Kepler och Maxwell. Redan Kepler framstår ju som väldigt resurseffektiv jämfört med GCN så det finns mycket att hämta in.

Skrivet av Yoshman:

Är naturligtvis fullt möjligt att AMD också förenklat designen av CU med bibehållen teoretisk FLOPS/MHz per stream processor och utnyttjat det till att höja frekvensen en hel del, är just sådan information som skulle vara otroligt intressant att komma över! Att man skulle göra gigantiska ökningar av FLOPS/MHz är ju inte omöjligt, men det är lång mer osannolikt än förändringar som endera ökar antal stream processorer (och här verkar ju rykten skvallra om att det är upp till 2048 st, d.v.s motsvarande 380X) eller öka frekvensen (vilket är vad Nvidia verkar göra med Pascal och vad man gjorde med Maxwell).

Och du fastnar i frekvenssnacket trots att AMD har gått ut med att man siktat massivt på att öka effektivitet och deras Slides visar på att de omkonstruerat nästan varenda del i sina kärnor. En del av förbättringarna är jämförbara med det nVidia gjorde för att öka sin effektivitet per shader och Hz med 25%. Men det är ju orimligt att AMD skulle göra något liknande trots mindre optimerad grund och massiva satsningar alltså?

Skrivet av Yoshman:

Fördelen med att höja frekvensen är att även ROPs och geometrikapacitet skalar med den medan de inte direkt påverkas av fler stream/CUDA-cores. Nackdelen med att höja frekvensen är att man måste designa hela kretsen för en viss frekvens samt att perf/W brukar sjunka väldigt snabbt när man passerar en viss gräns. Har läst att 390 drar ungefär 50 % om man skalar tillbaka frekvensen med ca 80 %, så den frekvens som man använder på faktiska produkter ligger en bit ovanför "sweet-spot" för designen.

Man brukar ju läsa att t.ex. Apples Twister skulle kunna vara lika snabb som Haswell då dessa har väldigt snarlik IPC (är brutalt imponerad av vad Apple gjort på så kort tid!). Men Twister är helt designad för att ligga runt 2 GHz så är liksom inte möjligt att klocka den till >3 GHz, effekten kommer dra spikrakt in i himlen långt innan man kommer nära de frekvenser som Haswell är kapabel till.

Så frågan är ju hur AMD väljer att fördela den x2 perf/W fördel Polaris 10 har mot dagens kort. Det faktum att man säger att Polaris 10 har x2 medan Polaris 11 har x2,5 tyder nog ändå på att man i Polaris 10 använt en del av utrymmet till att skruva upp frekvenserna och därmed får lite mindre perf/W boost än Polaris 11. För Polaris 11 verkar fokus främst vara laptops och då försöker man nog maximera perf/W över absolut prestanda.

Frekvens frekvens frekvens.

Permalänk
Medlem
Skrivet av Gruarn:

@Yoshman Jag funderar på om det kan ha varit så att P10 skulle ha fått HBM egentligen och att det var det minnet som drog upp effektiviteten till 2.5, men nu när det inte längre är aktuellt med HBM så har man gått ner till 2x. Det finns också de som hävdar att det är skillnad på vad Lisa Su säger (2x) och vad Raja Koduri säger (2.5x).

Jag hittade förresten patenttexten jag skrev om. Jag tror du är i en bättre sits att få ut något av den än vad jag är. Den här typen av text får mitt huvud att göra ont såhär dags...

Förresten: Vad gäller antalet shaders på P10 och P11 så är siffrorna jag oftast ser 2560 resp. 1280 för de fulla kretsarna. Var ryktas det om 2048?

Polaris 10 skulle ha HBM2 men fick nöja sig med GDDR5 enligt rykten, de hade en backup med GDDR5-kontroller utifall HBM2 skulle dra ut på tiden. Vega fanns inte med sådan backup, därför får vi se de större kretsarna först när HBM2 kommer.

Man får tänka på att de började designa dessa kretsar för länge sedan. När de sa 2.5x i vintras så visste de redan vilka kretsar som skulle skulle släppas när ungefär, så inget har ändrats sedan dess. Dock så har de aldrig specificerat när man ser 2.5x och när man inte gör det.

Permalänk
Datavetare

@Aleshi: Fast frekvens är ju högst relevant. Maxwell är säkert 25% mer effektiv per CUDA-core, men en stor del av denna förbättring kommer av att man kan köra CUDA-cores på en högre frekvens med bibehållen strömförbrukning. Man har alltså inte ökat antal FLOPS/MHz i Maxwell, även om man gjort små förbättringar även där i praktiken men de är inte i närheten av några 25%.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

380x/280x(kanske inkräktar på 290 prestanda) prestanda under 50watt??

Så jävla många "ja tack"

I minimalt format?? Ännu fler ja tack

Runt 1000kr ?? Kött fifaaan!

Fan har aldrig sett fram emot lansering såhär mycket !

Permalänk
Medlem
Skrivet av Yoshman:

@Aleshi: Fast frekvens är ju högst relevant. Maxwell är säkert 25% mer effektiv per CUDA-core, men en stor del av denna förbättring kommer av att man kan köra CUDA-cores på en högre frekvens med bibehållen strömförbrukning. Man har alltså inte ökat antal FLOPS/MHz i Maxwell, även om man gjort små förbättringar även där i praktiken men de är inte i närheten av några 25%.

NEJ!

Läs igen. "Prestandan är 25% högre per kärna OCH HZ."

Du kan inte säga att IPCn har ökat med 25% bara för att frekvensen ökat 25% och IPC-ökningen därmed är 0. Det är totalt haveri i matten! IPC har ökat 25%, PUNKT. Du kan inte tillskriva en IPC-ökning till ökade frekvenser!

Prestandaökningen per kärna är 58%, 980 utpresterar ett kort med 37,5% fler kärnor med 13%. Men tar vi frekvensen i beräkningarna så är det 25% snabbare per kärna och Hz.

Permalänk
Hjälpsam
Skrivet av Yoshman:

---Text--
Ser däremot inte att GCN fått något generell prestandaförbättring via drivers sedan den stora förbättring man gjorde strax efter lanseringen av 290. Visst har enskilda titlar fått lyft jämfört med lanseringsprestanda, men det gäller även för Nvidia (jämför prestanda vid lansering av Ashes of the Singularity och Hitman med hur Nvidia idag presterar jämfört med AMD, i Hitman låg 970 på 380X nivå initialt och nu är man på 390 nivå).
--Text--.

Jo då AMD har fått generell prestandaförbättring, de började sänka sitt overhead i DX11 rejält från förra sommaren, även om de inte nått Nvidias nivå, sedan har det de ju jobbat hårt med minneshanteringen för Fury, hur mycket av den förbättrade minneshanteringen som har spillt över på övriga kort vet jag inte, men det verkar närmast magiskt vad de gör med Fury.

Overhead märks som sagt inte mycket med starka CPU:r men de flesta har ju inte det.
Minneshanteringen märks ju bara i speciella fall oftast räcker 4GB minne rätt väl.

http://www.hardocp.com/article/2016/02/29/rise_tomb_raider_gr...
http://www.hardocp.com/article/2016/04/01/ashes_singularity_d...

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Inaktiv
Skrivet av Ratatosk:

Jo då AMD har fått generell prestandaförbättring, de började sänka sitt overhead i DX11 rejält från förra sommaren, även om de inte nått Nvidias nivå, sedan har det de ju jobbat hårt med minneshanteringen för Fury, hur mycket av den förbättrade minneshanteringen som har spillt över på övriga kort vet jag inte, men det verkar närmast magiskt vad de gör med Fury.

Overhead märks som sagt inte mycket med starka CPU:r men de flesta har ju inte det.
Minneshanteringen märks ju bara i speciella fall oftast räcker 4GB minne rätt väl.

http://www.hardocp.com/article/2016/02/29/rise_tomb_raider_gr...
http://www.hardocp.com/article/2016/04/01/ashes_singularity_d...

Hänger inte riktigt med på det här om minneshanteringen. HardOCP artikeln kollar ju bara på hur mycket som lagras i VRAM:et inte hur mycket som faktiskt krävs eller hur det påverkar prestanda. Tittar man här: http://cdn.sweclockers.com/artikel/diagram/10866?key=c76cd363... Så ser minneskravet mellan deras andra 4GB kort och fury identiskt ut (samma min fps på 290X som fury, eftersom 390 klarar sig utan dropps så är det med största sannolikhet vram-relaterat). Till och med 970 klarar ju sig bättre, så vad är det som är magiskt med minneshanteringen på fury?

Permalänk
Hjälpsam
Skrivet av anon75480:

Hänger inte riktigt med på det här om minneshanteringen. HardOCP artikeln kollar ju bara på hur mycket som lagras i VRAM:et inte hur mycket som faktiskt krävs eller hur det påverkar prestanda. Tittar man här: http://cdn.sweclockers.com/artikel/diagram/10866?key=c76cd363... Så ser minneskravet mellan deras andra 4GB kort och fury identiskt ut (samma min fps på 290X som fury, eftersom 390 klarar sig utan dropps så är det med största sannolikhet vram-relaterat). Till och med 970 klarar ju sig bättre, så vad är det som är magiskt med minneshanteringen på fury?

Där fungerar uppenbarligen inte minneshanteringen, när gjordes testet?
Kanske inte AMD fått ordning på minneshanteringen vid den tidpunkten.

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Inaktiv
Skrivet av Ratatosk:

Där fungerar uppenbarligen inte minneshanteringen, när gjordes testet?
Kanske inte AMD fått ordning på minneshanteringen vid den tidpunkten.

Senaste testet där de tester gta v med de inställningarna är typ december 2015. Hittar ingen annan sida där man kan göra en bra jämförelse med ett senare datum. Men å andra sidan, vad är det som tyder på att de ens gjort nån förändring? Har du något test där andra 4GB kort flaskar men Fury klarar sig?

Inte för att jag ser detta som ett större problem, då det är i så extremt få fall som 4GB inte räcker idag, går knappt att hitta pålitliga resultat för detta och då är det med hög AA i 4k där gpu kraften ändå inte hänger med. Enda scenariot där detta är ett problem är väl för folk som vill köra flera Fury -kort och tänkt att även göra detta i framtiden.

Skickades från m.sweclockers.com

Permalänk
Entusiast
Permalänk
Hjälpsam

@anon75480: Hittade testet som du gav bilden på.
http://www.sweclockers.com/test/21303-amd-radeon-r9-380x/14
Är ju trots allt ett halvår gammalt, men det är som du säger, behövs nog lite mer tester av Furys minneshantering.

Visa signatur

AMD Ryzen 7 5700X | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/51gntq | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/gwcxfs
HTPC | https://valid.x86.fr/gqtxws |

Permalänk
Inaktiv
Skrivet av Ratatosk:

@sKRUVARN: Hittade testet som du gav bilden på.
http://www.sweclockers.com/test/21303-amd-radeon-r9-380x/14
Är ju trots allt ett halvår gammalt, men det är som du säger, behövs nog lite mer tester av Furys minneshantering.

Kan ju kolla Duo Pro testet ovan annars som är purfärskt. Förutom mängder av microstutter (som jag trode de löst för länge sen) så ser det ut såhär i gta v:

Titta vid 40s, alla 4GB-kort går ner till samma fps så är ju inget unikt för Fury direkt, Fiji beter sig lika, och är väl inget konstigt att minnet flaskar lite i den upplösningen egentligen så inte så mycket att klaga på, har kortet bara 4GB vram så är det väl klart det kommer flaska nån gång.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av anon75480:

Kan ju kolla Duo Pro testet ovan annars som är purfärskt. Förutom mängder av microstutter (som jag trode de löst för länge sen) så ser det ut såhär i gta v:

http://www.pcper.com/files/review/2016-04-29/GTAV_3840x2160_FRAPSFPS.png

Titta vid 40s, alla 4GB-kort går ner till samma fps så är ju inget unikt för Fury direkt, Fiji beter sig lika, och är väl inget konstigt att minnet flaskar lite i den upplösningen egentligen så inte så mycket att klaga på, har kortet bara 4GB vram så är det väl klart det kommer flaska nån gång.

Skickades från m.sweclockers.com

Känner lite att det inte är jättespelbara inställningar på de korten med eller utan den dippen. Men beror väl på hur man värderar flyt och så vidare.

Permalänk
Medlem
Skrivet av Yoshman:

2048 var något jag gått om bakfoten (eller så är det gammal information), det senate ryktet jag sett pratar om 36 CU och totalt 2304 stream processors i Polaris 10. Om det stämmer är man ur den aspekten klart närmare 390 än 380X, fast slutresultatet beror som sagt väldigt mycket på frekvens och är övertygad om att frekvensen för Polaris generellt kommer vara högre än 300-serien.

Satt och tittade lite på patent i går kväll och verkar som just lång strömförbrukning är ett huvudfokus denna generation om man ska döma av patenten (fast är väldigt jobbigt att försöka begripa vad som står i patent, har ibland svårt att helt förstå texten i de patent jag själv skickat in efter det att patentingengörerna ändrat till patentfikonspråket )

Det patent du länkar till nämner i.o.f.s. en wavefront bredd på 64 fördelat över 4 enheter per CU. Nu kan det mycket väl endast vara ett exempel och Polaris kan använda en annan fördelen, men är just den fördelningen som GCN1.0 till 1.2 använder. Nvidia har en smalare bredd här, deras "warp" är består av 32 trådar.

Detta nämns

"Some embodiments provide a computing system configured to execute multiple threads in parallel including a plurality of single instruction multiple data (SIMD) units and a plurality of issue units. The SIMD units have differing numbers of arithmetic logic units (ALUs), such that each SIMD unit can execute a different number of threads."

Här är just stället där Pascal skiljer sig från tidigare, antal trådar per SIMD är minskat till två i Pascal, ner från fyra. Tidigare GCN har 4 enheter per CU, så 16 trådar per SIMD-enhet. Man mappar trådarna i "wavefront/warp" till ALUs och om antal trådar en SIMD enhet kan hantera inte är jämt delbar med antal aktiva trådar får man minskad effektivitet (man vill därför alltid försöka använda alla 32/64 trådar). Här är

Den trend jag sett är att: fördelen att gå "brett" verkar vara att man når högre kapacitet med en viss transistorbudget, fördelen att gå "smalt" är att det är lättare att nå nära teoretisk max och verkar också vara lättare att skala en sådan design mot högre frekvenser. Så båda modellerna har fördelar och nackdelar, blir spännande att se hur man tänkt i Polaris här och än mer spännande att se resultatet i praktiken!

Patentet pratar ju om möjligheten att använda ALUs i olika konfigurationer med olika bredd, så man har kanske kommit på något smart att kunna hoppa mellan en "smalare" modell (frågan är hur man drar nytta av detta) och en "bredare" modell beroende på last.

2048 har nog aldrig nämnts alls faktiskt. 2304 har nämnts men det förväntas att det inte är XT-varianten. XT förväntas ha 2560 enligt källan till siffran om 2304. Dessutom så är ju min personliga åsikt att du är väldigt fel ute om du ens spekulerar i om Polaris 10 är närmast 380X eller 390. Jag förväntar mig en ganska mycket effektivare arkitektur.

Permalänk
Entusiast

Dessa fina grafer avskräcker ju ganska rejält från CF... för jag vill ha avsevärt mycket mer än 980Ti-prestanda vilket i såna fall skulle innebära köpet av två kort.

Permalänk
Medlem
Visa signatur

Gaming: i7 13700k | 3080 Tuf oc | 32gb | 2TB nvme | Evga 1000 P2

HTPC: 3400g | 16gb | 250gb nvme

NAS: 12600k | 32gb | 512gb ssd | 2x1TB nvme | 3x16TB exos

Permalänk
Datavetare
Skrivet av Aleshi:

NEJ!

Läs igen. "Prestandan är 25% högre per kärna OCH HZ."

Du kan inte säga att IPCn har ökat med 25% bara för att frekvensen ökat 25% och IPC-ökningen därmed är 0. Det är totalt haveri i matten! IPC har ökat 25%, PUNKT. Du kan inte tillskriva en IPC-ökning till ökade frekvenser!

Prestandaökningen per kärna är 58%, 980 utpresterar ett kort med 37,5% fler kärnor med 13%. Men tar vi frekvensen i beräkningarna så är det 25% snabbare per kärna och Hz.

Enligt det sättet att resonera har "IPC" i GCN1.2 (Fury X) minskat med 33 % jämfört med GCN1.1 (390X)...

Rejält förenklat består en GPU av fem delar

  • shader-array

  • TMU (texturenheter)

  • ROP (raster & blending)

  • geometri/vertex-array

  • VRAM+cache

och en jämförelse av den första punkten (diskussionen var runt stream-processorer och CUDA-cores) genom att studera resultat som extremt mycket beror på balansen mellan alla dessa punkter (SweC prestandaindex) blir ju totalt nonsens.

Håller med om att det mest intressanta är hur de nya kretsarna kommer prestera i sin helhet, men den enda del det finns några rykten som har någon form av substans är första punkten. Min invändning här är att Maxwells shader-array är definitivt mer effektiv än Keplers, men det är inte nära några 25 %. Och ja, det kanske du anser är "detaljer" men en del av mitt arbete består i att göra extrema optimeringar och i dessa lägen ligger definitivt djävulen i detaljerna, så för mig är detta kanske långt mer självklart än för de flesta andra.

Många verkar helt missa hur extremt mycket Kepler och Maxwell skiljer sig åt i designen samt också hur mycket bättre balans Maxwell har av dessa enheter givet den riktning moderna spelmotorer tagit. Jämför vi 980 och 780Ti så har de väldigt snarlik kapacitet i shader-array, tittar man på AotS som är extremt shader-tungt så är fördelen där mindre för Maxwell än vad SweC prestandaindex skvallrar om.

En trend i nya spel är att man lägger på allt mer post-processing, många av dessa efter är ROP och bandbreddskrävande. ROP-kapaciteten i 980 är 175 % högre än 780Ti! Bandbredd kan vid första anblick tala för 980Ti, men mycket post-processing har hög datalokalitet vilket gynnar Maxwells större cache (både L1 och L2, en sak som nämns i whitepaper om Pascal är att L1 dubblas från Maxwell).

Textureffekter har däremot minskat i relevans då spel aldrig mindre använder olika former av "maps" (cube-maps, environment-maps etc), motsvarande görs idag med shaders och post-processing. 980 har faktiskt ca 40 % lägre kapacitet här än 780Ti. Maxwell är helt enkelt en långt bättre balanserad krets för moderna spel.

Det man kan notera när man jämför 390, 390X och Fury X är att balansen mellan delar blir allt sämre. 390 (och även 380) verkar vara de AMD kretsar som har bäst balans mellan de olika delarna. Från 390 och uppåt är ROP-kapacitet och geometri-kapacitet densamma, vilket syns i väldigt dålig effektivitet av all den extra shader-kapasitet som högre modeller lägger på.

Av de rykten som finns kring Polaris tycker jag att AMD fokuserat på helt rätt punkter, man pratar ju om rejält mycket bättre geomtrikapacitet t.ex. (något som t.ex. kommer säkerställa att Polaris hanterar Gameworks-effekter långt bättre). Så förväntar mig definitivt mer är 25 % högre prestanda med motsvarande antal stream-processorer som dagens kretsar då shared-array absolut inte är en flaskhalsarna i dagens GCN.

Därför jag inte riktigt reagerade på min missuppfattning om 2048 stream-cores, är övertygad att en GCN med 2048 cores där man biffade upp ROPs och geomtrikapacitet skulle vara snabbare i >90 % av fallen än dagens 390X (980 har 2048 "kärnor" med samma teoretiska kapacitet per "kärna" och MHz som GCN).

Det trevliga med att öka frekvensen är att allt utom VRAM-kapacitet skalar med frekvens (inklusive L1/L2, så även bandbredd skalar till viss del), så tror att en design där man kanske förenklar vissa delar för att möjliggöra högre frekvens inom en viss effektbudget är en bra idé. Dagens processer verkar väldigt effektiva upp till 1,5-2,0 GHz om man tittar på var ARM och Intel designer lägger sig när man uteslutande optimerar för perf/W, GPUerna borde därför kunna lyftas lite från dagens ~1,0 GHz nivå med positiv effekt (väldigt mycket spekulation från min sida dock).

Skrivet av Ratatosk:

Jo då AMD har fått generell prestandaförbättring, de började sänka sitt overhead i DX11 rejält från förra sommaren, även om de inte nått Nvidias nivå, sedan har det de ju jobbat hårt med minneshanteringen för Fury, hur mycket av den förbättrade minneshanteringen som har spillt över på övriga kort vet jag inte, men det verkar närmast magiskt vad de gör med Fury.

Du menar att det varit signifikant värre än detta tidigare, notera 1,2 GHz resultaten med DX11?

Dold text

Tittar jag på de artiklar som testade "Omega" samt nu "Crimson" drivarna så handlar det i genomsnitt om förbättringar på 1-2 %, vissa titlar får någon procent lägre prestanda medan vissa ser upp mot 5 % högre (t.ex. GTA med Crimson). Visst rent matematiskt är det väl en förbättring, men knappast något som gör en relevant skillnad. Huruvida grafikkortet är "fabriksöverklockat" eller inte har en större påverkan än detta.

De som har Maxwell gen 2 fick vid något läge en drivare som ökade prestanda i spel som använder MSAA med 10-30 % via MFAA förutsatt att man innan använde minst MSAA x4 (vilket SweClockers alltid använder i sitt prestandaindex för de titlar som stödjer MSAA).

Ändå verkar konsensus vara att Nvidias drivare inte ger någon boost med tiden... Och just detta fall ligger det något i detta, allt färre titlar stödjer MSAA då det fungerar dåligt med många tekniker som nya titlar använder.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Enligt det sättet att resonera har "IPC" i GCN1.2 (Fury X) minskat med 33 % jämfört med GCN1.1 (390X)...

Rejält förenklat består en GPU av fem delar

  • shader-array

  • TMU (texturenheter)

  • ROP (raster & blending)

  • geometri/vertex-array

  • VRAM+cache

och en jämförelse av den första punkten (diskussionen var runt stream-processorer och CUDA-cores) genom att studera resultat som extremt mycket beror på balansen mellan alla dessa punkter (SweC prestandaindex) blir ju totalt nonsens.

Håller med om att det mest intressanta är hur de nya kretsarna kommer prestera i sin helhet, men den enda del det finns några rykten som har någon form av substans är första punkten. Min invändning här är att Maxwells shader-array är definitivt mer effektiv än Keplers, men det är inte nära några 25 %. Och ja, det kanske du anser är "detaljer" men en del av mitt arbete består i att göra extrema optimeringar och i dessa lägen ligger definitivt djävulen i detaljerna, så för mig är detta kanske långt mer självklart än för de flesta andra.

Många verkar helt missa hur extremt mycket Kepler och Maxwell skiljer sig åt i designen samt också hur mycket bättre balans Maxwell har av dessa enheter givet den riktning moderna spelmotorer tagit. Jämför vi 980 och 780Ti så har de väldigt snarlik kapacitet i shader-array, tittar man på AotS som är extremt shader-tungt så är fördelen där mindre för Maxwell än vad SweC prestandaindex skvallrar om.

En trend i nya spel är att man lägger på allt mer post-processing, många av dessa efter är ROP och bandbreddskrävande. ROP-kapaciteten i 980 är 175 % högre än 780Ti! Bandbredd kan vid första anblick tala för 980Ti, men mycket post-processing har hög datalokalitet vilket gynnar Maxwells större cache (både L1 och L2, en sak som nämns i whitepaper om Pascal är att L1 dubblas från Maxwell).

Textureffekter har däremot minskat i relevans då spel aldrig mindre använder olika former av "maps" (cube-maps, environment-maps etc), motsvarande görs idag med shaders och post-processing. 980 har faktiskt ca 40 % lägre kapacitet här än 780Ti. Maxwell är helt enkelt en långt bättre balanserad krets för moderna spel.

Det man kan notera när man jämför 390, 390X och Fury X är att balansen mellan delar blir allt sämre. 390 (och även 380) verkar vara de AMD kretsar som har bäst balans mellan de olika delarna. Från 390 och uppåt är ROP-kapacitet och geometri-kapacitet densamma, vilket syns i väldigt dålig effektivitet av all den extra shader-kapasitet som högre modeller lägger på.

Av de rykten som finns kring Polaris tycker jag att AMD fokuserat på helt rätt punkter, man pratar ju om rejält mycket bättre geomtrikapacitet t.ex. (något som t.ex. kommer säkerställa att Polaris hanterar Gameworks-effekter långt bättre). Så förväntar mig definitivt mer är 25 % högre prestanda med motsvarande antal stream-processorer som dagens kretsar då shared-array absolut inte är en flaskhalsarna i dagens GCN.

Därför jag inte riktigt reagerade på min missuppfattning om 2048 stream-cores, är övertygad att en GCN med 2048 cores där man biffade upp ROPs och geomtrikapacitet skulle vara snabbare i >90 % av fallen än dagens 390X (980 har 2048 "kärnor" med samma teoretiska kapacitet per "kärna" och MHz som GCN).

Det trevliga med att öka frekvensen är att allt utom VRAM-kapacitet skalar med frekvens (inklusive L1/L2, så även bandbredd skalar till viss del), så tror att en design där man kanske förenklar vissa delar för att möjliggöra högre frekvens inom en viss effektbudget är en bra idé. Dagens processer verkar väldigt effektiva upp till 1,5-2,0 GHz om man tittar på var ARM och Intel designer lägger sig när man uteslutande optimerar för perf/W, GPUerna borde därför kunna lyftas lite från dagens ~1,0 GHz nivå med positiv effekt (väldigt mycket spekulation från min sida dock).

Du menar att det varit signifikant värre än detta tidigare, notera 1,2 GHz resultaten med DX11?

Tittar jag på de artiklar som testade "Omega" samt nu "Crimson" drivarna så handlar det i genomsnitt om förbättringar på 1-2 %, vissa titlar får någon procent lägre prestanda medan vissa ser upp mot 5 % högre (t.ex. GTA med Crimson). Visst rent matematiskt är det väl en förbättring, men knappast något som gör en relevant skillnad. Huruvida grafikkortet är "fabriksöverklockat" eller inte har en större påverkan än detta.

De som har Maxwell gen 2 fick vid något läge en drivare som ökade prestanda i spel som använder MSAA med 10-30 % via MFAA förutsatt att man innan använde minst MSAA x4 (vilket SweClockers alltid använder i sitt prestandaindex för de titlar som stödjer MSAA).

Ändå verkar konsensus vara att Nvidias drivare inte ger någon boost med tiden... Och just detta fall ligger det något i detta, allt färre titlar stödjer MSAA då det fungerar dåligt med många tekniker som nya titlar använder.

Dold text

Och där kom klassiska finten à la Yoshman. Helt plötsligt så låtsas du som att vi pratade om prestandan i varje enskild shader. Vi pratade om prestandan i kretsen som helhet, och om man kunde förvänta sig 45% högre prestanda per shader. Då självklart genom bättre balans för att utnyttja befintlig beräkningskapacitet, alltså eliminering av flaskhalsar.
Du kom och sa dumheter som att Maxwell inte hade nämnvärda prestandaökningar över Kepler per Hz och shader, även fast prestandaskillnaden i praktiken är imponerande 25%. Och nu försöker du finta bort det hela genom att försöka lära ut GPUns beståndsdelar som om det ens vore på tapeten. Dina inlägg riktar sig som vanligt mer till läsande tredjepart än till den du citerar.

Frågan gällde om vi kunde förvänta oss Fury X-/980Ti-prestanda ur en krets med endast 2560 shaders. Du sa mer eller mindre att frekvenser är enda vägen dit och det skulle ju vara orimligt då deras fokus varit energieffektivitet. Jag poängterar att man mycket väl kan nå dit om man balanserar kretsen bättre eftersom det finns mycket outnyttjad kapacitet i dagens GCN. Jag pekade på förbättringarna i Maxwell över Kepler. Du fortsatte då prata om frekvens som om det vore enda förbättringen man kunde göra för att få ut mer prestanda trots "låga" 2560 shaders. Du förklarade övertaget 980 har över 780Ti med frekvenser, trots att jag poängterat att prestandan per Hz och Shader ökat med 25%. Poängen är alltså att AMD också kan ta bort flaskhalsar i övriga GPUn för att befintliga shaders ska få sträcka på benen. Och då kommer ditt svammel ovan.
Jag uppskattar inte att du i diskussion efter diskussion försöker finta på detta vis. Det är fult och lågt. Inte god ton och direkt förolämpande. Det tär på tålamodet helt enkelt.

Permalänk
Datavetare

@Aleshi: vi kan spekulera om prestanda för hela kretsen, det enda vi vet med någorlunda säkerhet är antalet shaders samt att geometridelen "är signifikant förbättrad". Ser personligen ingen mening med att hålla på med helt oinformerad spekulation, men ändå kul att teoretisera kring de saker det ändå finns någon form av information kring.

Tyckte också det var ett lämpligt tillfälle att belysa det faktum att GPUer består av mer än shaders. Av någon anledning är det alltid den aspekten ihop med minnesbandbredd som nämns i de flesta artiklar, Kepler och Maxwell visar med överdådig tydlighet hur stor påverkan övriga delar har på kretsen prestanda.

Sa inte att frekvens är enda vägen dit, sa att högre frekvens är väldigt trevligt då högre frekvens ökar kapaciteten för alla delar av kretsen förutom bandbredd mot VRAM. Påpekade också att Nvidia verkar köra samma variant en gång till (baserat på den faktiskt information som finns kring Pascal i deras whitepaper) med lite enklare delar som går att klocka högre. Hade sedan en stilla förhoppning att AMD går samma väg med Polaris, de har faktiskt ännu mer potential på denna punkt då de startar från en lägre frekvens.

Och faktum kvarstår att med "ditt" sätt att mäta "IPC" så får man ju resultatet att IPC minskar från 390 till 390X, minskar rejält från 390/390X till Fury-serien. Är inte det bakvänt?

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

@Aleshi: vi kan spekulera om prestanda för hela kretsen, det enda vi vet med någorlunda säkerhet är antalet shaders samt att geometridelen "är signifikant förbättrad". Ser personligen ingen mening med att hålla på med helt oinformerad spekulation, men ändå kul att teoretisera kring de saker det ändå finns någon form av information kring.

Jaha! Så det var mot spekulerandet du argumenterade? Det var ju inte helt klart får jag säga. Tänk, det känns som att vad diskussionen handlat om ändras allt eftersom. Men tycker nog att du spekulerar precis lika mycket. Jag konstaterar bara att det inte är orimligt att en krets med 2560 shaders presterar som en annan med 4096 shaders när så pass mycket runt omkring är omarbetat. Det är inte direkt några spekulationer då jag inte sitter och försöker räkna ut något eller säga att något blir på ett eller annat sätt. Du tyckte jag hade fel men har inte riktigt kunnat förklara varför. Nu slirar du bara runt på ämnet som vanligt.

Skrivet av Yoshman:

Tyckte också det var ett lämpligt tillfälle att belysa det faktum att GPUer består av mer än shaders. Av någon anledning är det alltid den aspekten ihop med minnesbandbredd som nämns i de flesta artiklar, Kepler och Maxwell visar med överdådig tydlighet hur stor påverkan övriga delar har på kretsen prestanda.

Ja och det behövdes? Du vet att jag är mer än väl medveten om detta. Det är liksom grunden för hela mitt argument att det inte är orimligt att nå högre prestanda trots "få" shaders.

Skrivet av Yoshman:

Sa inte att frekvens är enda vägen dit, sa att högre frekvens är väldigt trevligt då högre frekvens ökar kapaciteten för alla delar av kretsen förutom bandbredd mot VRAM. Påpekade också att Nvidia verkar köra samma variant en gång till (baserat på den faktiskt information som finns kring Pascal i deras whitepaper) med lite enklare delar som går att klocka högre. Hade sedan en stilla förhoppning att AMD går samma väg med Polaris, de har faktiskt ännu mer potential på denna punkt då de startar från en lägre frekvens.

Och faktum kvarstår att med "ditt" sätt att mäta "IPC" så får man ju resultatet att IPC minskar från 390 till 390X, minskar rejält från 390/390X till Fury-serien. Är inte det bakvänt?

Men det där har jag tagit hänsyn till. Ju snabbare kort desto mer begränsas prestandaindex av flaskhalsar. Det är därför jag valde att lägga mig vid ungefär samma prestanda med 980 och 780Ti och aktade mig för att jämföra 980Ti med 780Ti.
Det är förövrigt helt förväntat att skalningen mellan 390 och 390X inte är linjär. Och angående Fury så är det också uppenbart att kretsen innehåller en del kompromisser. Innan det var känt att man gjort sådana kompromisser så förväntades också högre prestanda.

EDIT: Råkade lägga till en EDIT i fel inlägg, den finns i inlägget nedan.

Permalänk
Datavetare
Skrivet av Aleshi:

Det är förövrigt helt förväntat att skalningen mellan 390 och 390X inte är linjär. Och angående Fury så är det också uppenbart att kretsen innehåller en del kompromisser. Innan det var känt att man gjort sådana kompromisser så förväntades också högre prestanda.

Det är förväntat givet hur man skalar kretsen, men finns andra sätt att göra det. Enligt prestandaindex är 980Ti 23 % snabbare än 980, skalningen av shaders (och även allt annat) är 22 % så det är "perfekt" skalning.

Ska man jämföra "IPC" mellan 780Ti och 980 genom att bara jämföra antal CUDA-cores och deras frekvens ignorerar man ju att ROP-kapacitete i princip fördubblades i 980, så hela jämförelsen blir ju nonsens. Även om prestandaindex visar på 25 % högre prestanda så kommer detta inte alls från bättre "IPC" i CUDA-cores, något man enkelt ser om man tittar på t.ex. AotS med "Crazy" settings som är extremt shader-tungt. Där har Maxwell långt mindre fördel än vad prestandaindex antyder.

Spel har blivit mer ROP-tunga, så helt förväntat att Kepler är den krets som hanterar detta sämst. Både motsvarande GCN och Maxwell har betydligt högre ROP-kapacitet. Kepler har däremot överkapacitet på TMUs, något som inte lägre är en lika stor flaskhals som tidigare.

Det riktigt positiva med nyheterna kring Polaris och Pascal är att den förra kommer stärkas upp på geometri (nuvarande GCN akilleshäl jämfört med Nvidia) medan Pascal får "async compute" och högre shader-kapacitet (bl.a. p.g.a. högre GPU frekvens). Är väldigt skönt om designerna konvergerar då eventuella skillnader har mycket större risk att orsaka problem i DX12/Vulkan än i DX11 (DX11 har långt mer möjligheter att abstrahera skillnader i HW).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Det är förväntat givet hur man skalar kretsen, men finns andra sätt att göra det. Enligt prestandaindex är 980Ti 23 % snabbare än 980, skalningen av shaders (och även allt annat) är 22 % så det är "perfekt" skalning.

Ska man jämföra "IPC" mellan 780Ti och 980 genom att bara jämföra antal CUDA-cores och deras frekvens ignorerar man ju att ROP-kapacitete i princip fördubblades i 980, så hela jämförelsen blir ju nonsens. Även om prestandaindex visar på 25 % högre prestanda så kommer detta inte alls från bättre "IPC" i CUDA-cores, något man enkelt ser om man tittar på t.ex. AotS med "Crazy" settings som är extremt shader-tungt. Där har Maxwell långt mindre fördel än vad prestandaindex antyder.

Spel har blivit mer ROP-tunga, så helt förväntat att Kepler är den krets som hanterar detta sämst. Både motsvarande GCN och Maxwell har betydligt högre ROP-kapacitet. Kepler har däremot överkapacitet på TMUs, något som inte lägre är en lika stor flaskhals som tidigare.

Det riktigt positiva med nyheterna kring Polaris och Pascal är att den förra kommer stärkas upp på geometri (nuvarande GCN akilleshäl jämfört med Nvidia) medan Pascal får "async compute" och högre shader-kapacitet (bl.a. p.g.a. högre GPU frekvens). Är väldigt skönt om designerna konvergerar då eventuella skillnader har mycket större risk att orsaka problem i DX12/Vulkan än i DX11 (DX11 har långt mer möjligheter att abstrahera skillnader i HW).

Och där låtsas du om att vi pratar om prestandan på CUDA-kärnorna allena igen. När vi pratar kretsen som helhet. Inser du inte varför jag tycker du diskuterar så fult?
Ja, Maxwell är bättre balanserad än Kepler. Det är lite det jag sagt hela tiden eller hur? Därför den presterar bättre. Och just därför man inte kan döma ut Polaris 10 jämfört med Fury X/980Ti enbart med antalet shaders som bas för sitt argument. Eftersom AMD varit så tydliga med att de adresserat just sådant. Fast du kör en halmgubbe och låtsas att vi pratar prestandan i enbart shaders för då kan du få rätt genom att säga det jag sa redan från första början.
Det var DU som enbart pratade shaders och angav frekvens som enda verkyg att påverka effektiviteten i en krets per shader. Det var JAG som poängterade att underutnyttjade shaders på grund av obalanserad krets ger AMD större möjligheter än vad nVidia hade med att nå högre prestanda per shader än tidigare genom att adressera flaskhalsar. Det är inte bara ROPs de förbättrat. De har adresserat mer än så. Effekten av detta får vi vänta och se. Men till skillnad från dina påståenden i början av diskussionen så tror jag att Polaris 10 kommer prestera avsevärt bättre sett till antalet shaders och frekvens än både Hawaii och Fiji. Eftersom dessa kretsar varit underdimensionerade på vissa övriga nyckelpunkter. Dels har vi det med ROPs, men dels tycks de ha krävt mer av CPU för att hålla sina beräkningsenheter matade. Där kan nog förbättringar i detas Command Processor och minnessystem hjälpa en hel del med.

EDIT:
Läs från början. Gruarn ifrågasatte möjligheterna i att Polaris 10 skulle nå den prestandanivån som det ryktats om i och med att det skulle innebära 45% mer prestanda för kretsen som helhet per shader. Jag poängterade att eftersom GCN i dagsläget har mycket prestanda som inte kan komma fram på grund av suboptimal balans så finns det gott om utrymme att öka den prestandan om man stärker upp svaga punkter. Pekade sedan på Maxwell, där vi såg optimeringar och frekvenser ge sammanlagt över 50% mer prestanda sett till antalet shaders. Då kan vi gott se 45% hos AMD när vi dessutom har en nodkrympning som hjälper till. Du har invänt mot detta utan att kunna framföra något argument till varför, du har pratat om frekvenser, för att sedan göra som du brukar, glida in på det jag sagt och låtsas att det är jag som sagt annat. Det är ganska ruttet.

Permalänk
Medlem

Var har Yoshman fått reda på att Pascal skulle få till asynchronous compute. Allt skvaller å så har typ sagt att Pascal skulle ha samma problem som Maxwell när det gäller denna funktionen.

går tvärtemot vad jag har hittat på nätet om detta.

Visa signatur

12700k@/7200c34@7800/msi z790 itx

Permalänk
Medlem
Skrivet av DST:

Var har Yoshman fått reda på att Pascal skulle få till asynchronous compute. Allt skvaller å så har typ sagt att Pascal skulle ha samma problem som Maxwell när det gäller denna funktionen.

går tvärtemot vad jag har hittat på nätet om detta.

Mig veterligen har det endast varit en förväntning sprungen ur besvikelsen vid de första benchmarksen. Har bara hört ett enda rykte i frågan och det är samma som du.

Permalänk
Medlem

@DST
Det är väl Compute Preemption som skall kunna göra ungefär samma jobb som async compute. Exakt hur det fungerar står tydligen i nvidias white paper om gp100, men jag har inte läst det och skulle inte förstå hur det skiljde sig mot async compute om jag gjorde, så jag lämnar dig med nedan text, saxad från Extremetech...

Nvidia is also claiming that Pascal will offer “Compute Preemption” with a significantly improved computing model. This is one area where Team Green has notably lagged AMD, whose asynchronous compute performance has been much stronger than anything NV has brought to bear. Asynchronous compute and compute pre-emption are not the same thing — we’ll have to wait for shipping hardware to see how this compares with AMD’s implementation and what the differences are.

Permalänk
Datavetare

@Gruarn: är väldigt olyckligt att termen "async compute" används då det inte alls beskriver vad det man faktiskt försöker lösa för problem. Överhuvudtaget verkar ordet "asynchronous" ställa till det, Microsoft har haft väldigt problem att förklara för folk att det "async" stöd man lade in i sin .NET plattform överhuvudtaget inte har något med parallellism att göra. Och missförståndet låg väldigt djupt, inte bara det man var slarvig med terminologin utan många missförstod konceptet så pass gravt att det under en lägre tid fanns en speciell kanal på Channel 9 som pratade om vanliga misstag, vilka buggar det resulterade i och hur man i stället borde gjort.

Två saker som är asynkrona har inget direkt beroende mellan sig på tidsaxeln. Det är allt, även första Voodo-kortet kan därför fullt ut stödja "async compute". Att man använder denna term beror gissningsvis på att AMD har pratat väldigt mycket om ACE (Async Compute Engines) som finns i GCN, man använder dessa för att implementera vad DX12 kallar "Multi-engine".

Det är dessa fall som ska lösas på bästa sätt

  1. Asynchronous and low priority GPU work. This enables concurrent execution of low priority GPU work and atomic operations that enable one GPU thread to consume the results of another unsynchronized thread without blocking.

  2. High priority compute work. With background compute it is possible to interrupt 3D rendering to do a small amount of high priority compute work. The results of this work can be obtained early for additional processing on the CPU.

  3. Background compute work. A separate low priority queue for compute workloads allows an application to utilize spare GPU cycles to perform background computation without negative impact on the primary rendering (or other) tasks. Background tasks may include decompression of resources or updating simulations or acceleration structures. Background tasks should be synchronized on the CPU infrequently (approximately once per frame) to avoid stalling or slowing foreground work.

  4. Streaming and uploading data. A separate copy queue replaces the D3D11 concepts of initial data and updating resources. Although the application is responsible for more details in the D3D12 model, this responsibility comes with power. The application can control how much system memory is devoted to buffering upload data. The app can choose when and how (CPU vs GPU, blocking vs non-blocking) to synchronize, and can track progress and control the amount of queued work.

  5. Increased parallelism. Applications can use deeper queues for background workloads (e.g. video decode) when they have separate queues for foreground work.

Här finns en annan term som folk extremt ofta missförstår, "concurrent". "Concurrent" och "parallell" är INTE samma sak, alla parallella program är också "concurrent" men det omvända gäller inte.

Punkt 4 är inget att orda om, alla dagens GPUer har explicit HW för att hantera detta separat.

Den form av "async compute" man hoppades skulle ge en boost för dagens GCN är inte direkt med i denna lista, men man kan se det som en variant av punkt 3. Tanken är att köra flera oberoende beräkningar på samma prioritet och på så sätt få högre nyttjandegrad av existerande beräkningsresurser. Detta diskuterades en hel del på årets Games Developer Conference och konsensus var att detta är väldig svårt att få till, det kräver väldigt mycket undersökning och trial&error. Finns vissa specifika fall som kan ge upp till 5-10 % bättre prestanda, men finns också fall där prestanda sjunker om man kör "async compute". Vidare är skillnaden i resultat mellan olika GPU-modeller signifikant, så här långt har GCN1.1 (390/390X) sett störts potentiell boost, följt av GCN1.2 (Fury-serien). Trots att 380/380X också kör GCN1.2 ser man här sällan någon boost alls, vilket också är fallet för GCN1.0.

Rent tekniskt går det att implementera 1, 2, 3 och 5 i alla dagens GPUer. Även Kepler och Maxwell kan ju köra all kod som använder separat grafik och beräkningskö. Med undantag för punkt 5 kan man dock inte vänta sig att totala mängden arbete som utförs på något sätt ska öka och punkt 2 och 3 har ett problem på Maxwell/Kepler som kan manifestera sig i t.ex. VR då preemption bara kan ske vid draw-call boundaries på dessa kort.

"This extra latency – the waiting for a call to end – can really mess up very time-sensitive applications, such as virtual reality headsets. A 5ms delay could lead to a missed Vsync and a visible glitch in the real-time rendering, which drives some people nuts. By getting down to the instruction level, this latency penalty should evaporate, which is good news for VR gamers." (länk)

Med Pascal har man lägsta möjliga latensens, varje instruktion. GCN löser detta via den schemaläggare som finns i ACE, exakt granulatet är inte specificerad (och kan mycket väl variera mellan olika GCN-versioner) men den är mer än tillräckligt låg för att VR ska fungera lysande.

En av förbättringarna i Polaris är bättre "prefetch" av instruktioner. Om man lyckas väldigt bra på denna punkt (och andra punkter som minskar pipeline-stalls) så minskar också potentiella effekten man kan få av "async compute" som det idag används i spel. Däremot kvarstår alltid fördelen med låg latens, vilket är det VR behöver. Vad förbättringar i saker som schemaläggning och prefetch ändå kan ge är större vinst från punkt 5, av den information som finns idag borde både Polaris och Pascal relativt sätt vinna mer än tidigare kretsar av att nyttja denna punkt.

TL;DR compute preemtion är inte samma sak som ACE, men båda kan användas som byggstenar för att implementera användarfallen DX12 ser som relevanta för "multi engine" konceptet, vilket är det enda DX12 specificerar kring just detta.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer