GFX Teori?

Grafikkort d.  07. januar. 2013, skrevet af k-man
Vist: 3378 gange.

k-man
 
Superbruger
Tilføjet:
07-01-2013 21:52:32
Svar/Indlæg:
117/16
God aften folkens...

Jeg sidder sådan og tænker over hvorfor der er så stor forskel på grafikkort. Hvad jeg har fundet frem til der gør den store forskel er hvor mange cuda kerner der er og hvor mange bit ramene kører. En tredje ting er hvor hurtigt gpuen kører, men har ikke lige så stor en indflydelse som de to andre ting har.

Er der nogle der kan forklare mig hvad disse cuda kerner er?

Hvis vi tager udgangs punkt i disse to kort: http://www.komplett.dk/k/kcp.a... (et msi 660 tf og et msi 660ti tf)

Lad os sige jeg sætte dem begge til at køre samme frekvens på gpuen og TI modellen har 1gb mere ram, så er den store forskel jeg kan se, at 960(660) og 1344(660ti) cuda kerner. En forskel på 384 cuda kerner, hvad end det så er?

Jeg er ude i noget i stil med KerneFrekvens X Antal CudaKerner = Ydelse? Men jeg er sikkert helt ved siden af.

Er det samme chip der sidder i hele deres 600 serie?

Ser frem til jeres svar.
k-man
 
Superbruger
Tilføjet:
07-01-2013 22:07:06
Svar/Indlæg:
117/16

God aften folkens...

Jeg sidder sådan og tænker over hvorfor der er så stor forskel på grafikkort. Hvad jeg har fundet frem til der gør den store forskel er hvor mange cuda kerner der er og hvor mange bit ramene kører. En tredje ting er hvor hurtigt gpuen kører, men har ikke lige så stor en indflydelse som de to andre ting har.

Er der nogle der kan forklare mig hvad disse cuda kerner er?

Hvis vi tager udgangs punkt i disse to kort: http://www.komplett.dk/k/kcp.a... (et msi 660 tf og et msi 660ti tf)

Lad os sige jeg sætte dem begge til at køre samme frekvens på gpuen og TI modellen har 1gb mere ram, så er den store forskel jeg kan se, at 960(660) og 1344(660ti) cuda kerner. En forskel på 384 cuda kerner, hvad end det så er?

Jeg er ude i noget i stil med KerneFrekvens X Antal CudaKerner = Ydelse? Men jeg er sikkert helt ved siden af.

Er det samme chip der sidder i hele deres 600 serie?

Ser frem til jeres svar.

k-man skrev d. 07-01-2013 21:52:32

Kom til og tænke den teori, det holder jo ikke helt når vi snakke om gfx med to kerner som 690.


Svaret blev redigeret 1 gang, sidst af k-man d. 07-01-2013 22:07:57.


las
 
Elitebruger
Tilføjet:
07-01-2013 22:32:22
Svar/Indlæg:
2151/51
Det er ikke samme chip i hele serien.

De største kort som 660 Ti / 670 / 680 bruger GK104 chippen, hvor der på 660 Ti / 670 så er deaktiveret dele af chippen.. 660 Ti har 192 bit ram bus hvor de andre har 256 bit.

På 660 og 650 Ti bruges så GK106 chip men 650 Ti har kun 128 bit ram bus ift. de 192 på 660.

Der er mange måder at begrænse kortene på :)


Svaret blev redigeret 1 gang, sidst af las d. 07-01-2013 22:33:10.


crankyrabbit
 
Elitebruger
Tilføjet:
07-01-2013 22:33:07
Svar/Indlæg:
7765/230
Kom til og tænke den teori, det holder jo ikke helt når vi snakke om gfx med to kerner som 690.

Fuck ryger du meget hash?????????? 😛

#2
"De største kort som 660 Ti / 670 / 680 bruger GK104 chippen, hvor der på 660 Ti / 670 så er deaktiveret dele af chippen.. 660 Ti har 192 bit ram bus hvor de andre har 256 bit."
Chippen er vel stadig den samme, bare med begrænsninger..or??


Svaret blev redigeret 1 gang, sidst af crankyrabbit d. 07-01-2013 22:38:52.


las
 
Elitebruger
Tilføjet:
07-01-2013 22:46:06
Svar/Indlæg:
2151/51
#3 Ja den har samme størrelse / de har alle en GK104 chip 🙂




På et 670 er der f.eks. lukket for 192 CUDA cores og 1 SMX.

Kan ikke lige huske hvad der mere er lukket for, men mener videocardz.com har specs på begge kort

Men det er ihvertfald sådan de begrænser kortene, og så memory bussen selvfølgelig 🙂


Svaret blev redigeret 1 gang, sidst af las d. 07-01-2013 22:47:15.


NoNig
 
Elitebruger
Tilføjet:
07-01-2013 23:07:08
Svar/Indlæg:
23132/740
-> #0

Jeg forsøgte at lave en (matematisk) model for, netop hvordan man kunne udregne en teoretisk ydelse (prognose) ud fra det vi i forvejen ved om grafikkort og deres ydelse.

Det problem jeg rendte ind i var, at software faktisk spiller en større rolle end man skulle tro. Især drivere har en del at sige, hvilket heller ikke burde komme som den store overraskelse, men selv fra program (spil især) til program, er der store sving i ydelse.

Derudover, så capper nogle spil ved en given framerate (eks. 25, 30, 50, 60, 75, 90 etc.) - ikke nødvendigvis grundet Vsync, men simpelthen direkte i spillets kode, da nogle spil også er lavet til konsoller.

Den mest præcise model jeg fik lavet var, når man tog et indekstal og satte ind.

Eks.

Geforce 6600GT = a
Geforce 8800GT = b

- hvor man så kunne gange dette indeks ind i modellen. Det gav den langt mest skalérbare funktion, men så skulle man have overblik over samtlige grafikkort, tage højde for individuelle frekvenser og måder hvorpå en given GPU var skruet sammen (de er ved at være ret komplekse efterhånden).

Så derfor, set fra et matematisk modelleringsperspektiv (eller snarere: efter min erfaring), er der ikke en rationel måde at snakke grafikkort-teori på, andet end at krybe til korset og gøre brug af programmer som 3Dmark.

Fordelen ved programmer som 3Dmark er dog, at med en tilstrækkelig stor database, vil man kunne udjævne visse variationer og usikkerheder - problemet er bare, at man (eller, sådan var det 'dengang') ofte fifler lidt med sine settings, for at snyde ydelsen højere end den reelt er/var.

I tiden gør jeg primært brug af denne side: http://www.passmark.com/index.... - databasen er tilstrækkeligt stor til at kunne danne sig et hurtigt overblik, og med de søgebare lister, kan man hurtige finde et given grafikkort og se dets relative ydelse ift. andre grafikkort.

Den viser nok ikke det, de fleste gamere søger, nemlig en omhyggelig opdeling og granulering. Men, sådan er virkeligheden også, med mindre man tæller FPS på femte decimal.

Hvis du skulle have lyst til at kaste dig ud i det, kan jeg anbefale dig at tjekke sider som Wikipedia, hvor der er anført data som: bus-type/interface, mængde RAM (og type, ikke mindst), shader-config, clockfrekvens for RAM og GPU og busbredde.

Vælger man at dykke rigtig meget ned i det, kan man finde rigtig mange detaljerede oplysninger, men du skal stadigvæk have et datasæt at sammenligne med.

Eks.: http://en.wikipedia.org/wiki/C...

Nogle af disse info kan du så holde op imod eks. databasen ved Passmark eller Futuremark, og lave et estimat der siger: "Hvis jeg kunne clocke eks. 50 MHz højere, hvad ville det så (teoretisk) give mig i ydelse?" - og så sammenligne dét med dem som rent faktisk har clocket præcist 50 MHz.

Men, så løber du ind i netop et af de problemer jeg nævnte tidligere, nemlig softwaren - for slet ikke at nævne temperaturer, og hele det underliggende system (CPU, RAM, SSD vs. harddisk).

Der er så f*cking mange variable at skrue på, at det er nærmest umuligt at isolere grafikkortet, endsige GPU'en eller den pågældende teknologi 🙂


gaming-king
 
Superbruger
Tilføjet:
07-01-2013 23:21:23
Svar/Indlæg:
1001/5
#5

Fedt svar 🙂

Welcome to Life! Here we have an unlimited number of variables! So all calculactions are based on a closed environment! 😲

(Derfor tror jeg heller ikke på det med CO2 og global opvarming 😉 )


Svaret blev redigeret 1 gang, sidst af gaming-king d. 07-01-2013 23:22:54.


Anonym202158143552
 
Elitebruger
Tilføjet:
08-01-2013 02:51:59
Svar/Indlæg:
3671/66
"Jeg er ude i noget i stil med KerneFrekvens X Antal CudaKerner = Ydelse? Men jeg er sikkert helt ved siden af."

Well, jeg er ikke ekspert, så dette er bare min, egentlig okay stærke, formodning:
Umiddelbart vil mit første udgangspunkt være, at det afhænger en del af arkitekturen. Primært AMD kontra Nvidia.

Nvidias kerner er anderledes end AMDs. Hvad dette helt konkret drejer sig om, har jeg sgu ikke rigtig orket at sætte mig ind i, men hovedsagen er, at Nvidia ikke behøver så mange kerner for at kunne yde med et tilsvarende AMD-kort, som har mange flere kerner i sin GPU (Graphics Processing Unit/grafikkerne/whatever).
Den seneste arkitektur fra Nvidia har dog taget en ændring, så disse nye kort, Kepler-serien, nu har et betydelig højere antal kerner i modsætning til før i tiden og disse fungerer anderledes.

Din hypotese er som sådan ganske udmærket, synes jeg. Der er dog blot en del flere faktorer, som spiller ind. Heriblandt bl.a.:
Hokummelsesfrekvensen (samme princip som med kernefrekvensen/GPU clock).
Hukommelses-interface/Bus-bredde/bus width.
Teksturenheder/texture units.
ROP's.


Jeg vil forsøge at starte fra en ende af:
GPU Clock-frekvensen/kernefrekvensen/GPU-frekvensen er den, umiddelbart, mest typiske ting at fokusere på, da den hæver GPU'ens generelle hastighed - altså, med andre ord, ikke en decideret begrænsende faktor. Ikke nok med at hæve sig selv, hæver clock-frekvensen også frekvensen på kernerne; altså dem/det man også kalder shaders/shader clock).

Så er der kernerne/shader units/CUDA cores:
Der er som sagt forskel mellem de forskellige brands, men hovedsaligt er det samme princip. Nvidia kalder deres for CUDA-kerner, idet de kan bruges til at klare udvalgte opgaver, som før har været eksklusivt forbeholdt CPU'en, udelukkende. Det er med andre ord bare et stykke software/kode, der er tilpasset deres kerner. AMD har også noget lignende selv, men det fungerer på en lidt anden måde.
Og yeah, jo flere jo bedre, som med så meget andet.

Kernerne har, som du selv er inde på, en tendens til at arbejde sammen med GPU-frekvensen. Her kommer en analogik:
A - En bil med en stor motor, men kører i andet gear.
B - En bil med en lille motor, men kører i fjerde gear.

A har en masse potentiale, men bruger det ikke, idet hastigheden er begrænset.
For B, derimod, er situationen en decideret kontrast.
Hvis man så sætter bilerne op i samme gear, vil A overhale B.
A er en GPU med et masse kerner og B har derfor, naturligvis, få kerner. Hvis de opnår en lignende frekvens på GPU'en, vil de flere kerner derved trække fra.
Som jeg var lidt inde på før, skalerer shader-clock med 200% i forhold til dens GPU-clock. Med andre ord, sætter du GPU-clock til 600MHz vil kernerne/shaders derved køre 1,2GHz.

Hukommelsesfrekvensen/GPU-clock/RAM-frekvens:
Denne del har ikke en en decideret relation til de nævnte, men har en del at sige, for hvor meget båndbredde der kan komme igennem. På et tidspunkt, vil der, som sædvanlig, opstå en flaskehals i nærmest hvilket som helst system. Dette kan være en flaskehals i en større eller mindre grad.

Bus width/bus-bredde/hukommelses-interface:
Denne del hører mere eller mindre sammen med RAM-frekvensen. Det er i hvert fald med til at danne samme principielle koncept med flaskehalsen - altså hvor stor en mængde data der er i stand til at flyde igennem løbet.
De to sidstnævnte faktorer er ofte mest relevante, når et grafikkort når en høj opløsning (1920x1200p+, siger min erfaring mig).

Når man kigger på et screenshot af GPU-Z, eksempelvis, står der bl.a. hvor meget bandwidth/båndbredde kortet råder over:


Her er mit eget GTX 580.

Læg mærke til de markerede områder. Bus width samt selve VRAM-frekvensen danner en formel, så der defineres hvordan det teoretiske båndbredde ser ud. Sænkes de to tal, falder båndbredden etc.



Der er sikkert en masse mangler i denne tekst og en del fejl der sikkert burde rettes og en del ting der bør undersøges, men orker det ikke. Jeg må virkelig i seng.
Jeg håber, at overstående gav dig lidt svar og ikke blot har øget din søgen.


Svaret blev redigeret 1 gang, sidst af Anonym202158143552 d. 08-01-2013 02:54:00.


Gripen90
 
Senior Skribent
Tilføjet:
08-01-2013 08:40:05
Svar/Indlæg:
15982/637
#4: Nej GTX 660 har GK106 chip 🙂


KinGzeDK
 
Superbruger
Tilføjet:
08-01-2013 10:24:15
Svar/Indlæg:
411/7
Nogen som ved hvor meget "Bus width" har at sige? Den bliver nemlig mindre med tiden.

GTX 260 = 448 bit
GTX 480 = 384 bit
GTX 680 = 256 bit


NoNig
 
Elitebruger
Tilføjet:
08-01-2013 10:45:33
Svar/Indlæg:
23132/740
-> #9

I "gamle dage" havde det en del at sige. Men, busbredde er - ligesom båndbredde på en internetforbindelse - dét der koster mest. Så derfor tror jeg, at man har gjort busbredden mindre og højnet frekvensen for grafikkortene.

Principielt, kunne man have gjort det omvendte, og haft samme datagennemgang.

Eks.

256 bit x 1.000 MHz = 32 byte x 1 GHz = 32 GB/s
512 bit x 500 MHz = 64 byte x 500 MHz = 32 GB/s

Det er dog ikke simpelt i virkeligheden, men det har åbenbart været vurderet, at det var mere teknisk-økonomisk, at mindske busbredden, og så sætte hastigheden op i stedet.

Det er dog værd at nævne, at visse professionelle grafikkort (eks. nVidia Quadro, AMD FireGL el. Matrox), kører med forholdsvis høj busbredde. Dette skyldes højest sandsynligt, at disse grafikkort er lavet til brug, hvor store mængder data skal behandles og lagres lokalt, frem for gamer-grafikkort, hvor der bare skal spyttes en masse FPS ud.

- det er dog, vil jeg lige indskyde, bare en hypotese. Så det er fuldstændigt uden rygdækning ovenstående 🙂


VojenZ
 
Elitebruger
Tilføjet:
08-01-2013 10:51:29
Svar/Indlæg:
331/7
#9 Mener også ram typerne(fra dd3 til ddr5) samt antallet af ram chips og ram mængden spiller ind her for betydningen af bus width.

Svaret blev redigeret 2 gange, sidst af VojenZ d. 08-01-2013 10:52:52.


Fearless
 
Elitebruger
Tilføjet:
08-01-2013 11:28:09
Svar/Indlæg:
4536/104
#11 det gør det også.

Ram mængden skal passe sammen med (ram-Bus) controlerens bit mængde.

du kan eksembelvis ikke så nemt lave 256bit rambus på et 320mb eller 896mb gfx.

Det plejer at være 256mb ->512mb->1gb-2gb-4gb på 256/512bit rambus.

og 192/320bit på 320mb/640mb/896mb/1,25gb/1,58gb

Dog kan man snyde lidt, og lave 2gb kort med ulige bit setup også men på en anden rammængde end normalt, som nvidia har gjort med 660 serien, og deres handikappede sidste 512mb-1024mb mængde ram)


Svaret blev redigeret 2 gange, sidst af Fearless Angel d. 08-01-2013 11:30:03.


k-man
 
Superbruger
Tilføjet:
08-01-2013 16:24:04
Svar/Indlæg:
117/16
Fedt fedt fedt.. Det gav helt sikkert noget viden inde for området. Mega fed læsning! Siger tusinde tak for svarene!

Det er desværre ikke lige så firkantet som jeg havde håbet på det var.

#12
Er det så rigtigt forstået et eksempeltvis 660 har "falsk" mængde ram? Så der faktisk kun er 1728mb ram til rådighed, eller misforstår jeg det du skriver?


#14
las
 
Elitebruger
Tilføjet:
08-01-2013 17:42:30
Svar/Indlæg:
2151/51
#8 Har jeg påstået andet? 😛

Se #2 :)


Svaret blev redigeret 1 gang, sidst af las d. 08-01-2013 17:53:30.


eviling
 
Overclocker
Tilføjet:
08-01-2013 20:01:38
Svar/Indlæg:
442/14
#5 Kan ikke være mere enig i at softwaren i sidste ender gør hele forskellen.
Vil dog også tilføje at RAM/cache størrelse også er en vigtig faktor.



Oprindeligt blev al computerkraft målt i flops
http://en.wikipedia.org/wiki/F...

Nogle grafikkort har dette listet, men det kan dog være meget misvisende.
Problemet er at der er stor forskel på hvilke instruktionssæt de enkelte CPU'er/GPU'er har og hvilke typer beregninger du vil have det til at udføre.


Cocio21
 
Moderator
Tilføjet:
09-01-2013 00:16:40
Svar/Indlæg:
4982/47
Sænkningen af bitkontrollers på nyere Gfx er en naturlig udvikling som følge af ramhastigheden, det er simpelthen ikke nødvendigt at bruge ligeså mange bitkontrollers for at få den samme eller bedre ydelse med nudagens GDDR5 (og tildels self optimeret GDDR3 på lowend kort osv..) 🙂


Fearless
 
Elitebruger
Tilføjet:
09-01-2013 13:34:10
Svar/Indlæg:
4536/104
#13 nope. sådan er det ikke.

De har simplethen lavet et eller andet fusk med at smide de første 1,5gb på en 192bit, og så de sidste 512mb på noget der minder om 64-128bit, kan ikke huske detaljerne, men du kan spørge gripen90 her på sitet, han er vist inde i netop hvordan det er nvidia har løst den problematik der.

i vært fald har 660/660Ti kraftige båndbreddedrops ved brug af over 1,5gb ram.


Svaret blev redigeret 1 gang, sidst af Fearless Angel d. 09-01-2013 13:35:41.


k-man
 
Superbruger
Tilføjet:
09-01-2013 16:00:07
Svar/Indlæg:
117/16
#17 Okay.. De er sku da nogle fuskere! 🙂


McCleod
 
Superbruger
Tilføjet:
11-01-2013 18:47:14
Svar/Indlæg:
2470/41

God aften folkens...

Jeg sidder sådan og tænker over hvorfor der er så stor forskel på grafikkort. Hvad jeg har fundet frem til der gør den store forskel er hvor mange cuda kerner der er og hvor mange bit ramene kører. En tredje ting er hvor hurtigt gpuen kører, men har ikke lige så stor en indflydelse som de to andre ting har.

Er der nogle der kan forklare mig hvad disse cuda kerner er?

Hvis vi tager udgangs punkt i disse to kort: http://www.komplett.dk/k/kcp.a... (et msi 660 tf og et msi 660ti tf)

Lad os sige jeg sætte dem begge til at køre samme frekvens på gpuen og TI modellen har 1gb mere ram, så er den store forskel jeg kan se, at 960(660) og 1344(660ti) cuda kerner. En forskel på 384 cuda kerner, hvad end det så er?

Jeg er ude i noget i stil med KerneFrekvens X Antal CudaKerner = Ydelse? Men jeg er sikkert helt ved siden af.

Er det samme chip der sidder i hele deres 600 serie?

Ser frem til jeres svar.

k-man skrev d. 07-01-2013 21:52:32

Kom til og tænke den teori, det holder jo ikke helt når vi snakke om gfx med to kerner som 690.

k-man skrev d. 07-01-2013 22:07:06


GTX690 er dual-GPU. Det er SLI på ét kort. Det samme er GTX590 og GTX295.


Svaret blev redigeret 1 gang, sidst af McCleod d. 11-01-2013 18:48:17.


McCleod
 
Superbruger
Tilføjet:
11-01-2013 18:52:35
Svar/Indlæg:
2470/41

Nogen som ved hvor meget "Bus width" har at sige? Den bliver nemlig mindre med tiden.

GTX 260 = 448 bit
GTX 480 = 384 bit
GTX 680 = 256 bit

KinGzeDK skrev d. 08-01-2013 10:24:15


GTX285 er 512 bit.

Hvis man halverer busbredden og fordobler clockfrekvensen bibeholder man samme båndbredde. Det er lettere at designe kredsløb med 256 bit bus end med 512 bit bus. Og clockfrekvensen i dag er oppe i et niveau hvor den til overflod kan kompensere for den manglende busbredde. Alt i alt giver det et billigere design uden at det går ud over ydelsen.