Artikel top billede

(Foto: Computerworld)

I anden potens

To grafikkort er bedre end et. Det lyder plausibelt, ikke?
Men som Alt om DATA opdager, så er intet helt så enkelt, når det kommer til
multi-gpu teknologi.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Tilføj et ekstra grafikkort. Nyd ekstra spilydelse. Af et koncept at være, kræver multi-gpu grafik ikke megen omtanke. Er det så det næste logiske skridt for 3D-rendering, det grafiske modstykke til multi-kerne-cpu'er? Eller er det et trick, der ikke gør meget mere end at bevise det faktum, at nogle mennesker er dumme nok til at tro på hvad som helst?

Tilbage ved den oprindelige søsætning af Nvidias SLI-platform i 2004, var det faktisk svært at tro på, at SLI var ægte. En løsning så kompleks og dyr som SLI kunne da aldrig blive etableret? I al fald var det faktum, at Nvidias hovedrival - tilbage da det var ATI, før de blev slugt med hud og hår af AMD - hurtigt fulgte efter med en kopiteknologi kendt som CrossFire, ikke nok til at bevise, at ideen havde potentiale til at blive etableret. På det tidspunkt indrømmede direktionsdrengene fra ATI underhånden, at de ikke var overbeviste om, at der var et reelt marked for multi-gpu'er.

Så begyndte der at ske noget mærkeligt. Selvom antallet af faktiske multi-gpu systemer forblev meget lille, begyndte computer-entusiaster at købe motherboards, der kunne bruge SLI. Selv om de ikke kørte to grafikkort parallelt, så ville de give sig selv muligheden. Mere end noget andet, så var ideen om at tilføje et ekstra, billigt grafikkort til det nuværende grafikkort, når det begyndte at løbe tør for juice, ekstremt fristende.

Ironisk nok kom det endelige bevis for, at multi-gpu'er er her for at blive, fra AMD, og ikke fra Nvidia. AMD har opgivet at bygge virkelig massive gpu'er og har i stedet besluttet at bruge multi-gpu teknologi som basis for alle deres fremtidige flagskibsgrafikkort.

Det gør dog ikke multi-gpu til den bedste hammer til at knække alle grafik-nødder. Leverer, for eksempel, et par mellemklasse grafikkort bedre ydelse end, for eksempel, et enkelt af de dyreste kort? Hvad med det aftagende udbyttes lov, når du går ud over to gpu'er? Desuden, er vi nået til det stadie, hvor hver i sær eller begge CrossFire og SLI i sandhed er blevet pålidelige? Du ved, hvad du skal gøre, for at få svar på disse og mange andre spørgsmål.

Nvidias GeForce GTS 250 og ATI Radeon HD 4770 fra AMD deler et fælles formål. For spil-junkiers vedkommende kan du måske endda sige, at det er et helligt kald. Begge sigter på at levere maksimal ydelse for færrest penge. Andre 3D-kort er muligvis hurtigere, men ingen giver samme knald for pengene som disse massemarked pixel-pumpere opnår. Det sjove er, at den måde de går til det på, ikke kunne være mere forskellig.

Tag GTS 250’eren. I modsætning til, hvad markedsføringen insinuerer, så er dette ikke en ny mellemklasse-afledning af Nvidias mægtige GT200 gpu, grafikchippen, der udgør det bankende hjerte i både GeForce GTX 285 og 295. Det er endnu et opkog på den gode gamle G92-kerne, der begyndte sit liv for æoner siden i GeForce 8800 GT.

Siden da har det kæmpet for Nvidias sag i en række forskellige forklædninger, og alligevel har forbløffende lidt ændret sig. Nu som da, pakker den seneste version af G92 128 stream-processorer, de mini-programmerbare eksekveringskerner med ansvar for at beregne fede visuelle effekter i de seneste spil. Ligeledes har den stadig 64 teksturfilter enheder, 16 pixel ydelse og en 256bit hukommelsesbus.

Faktisk involverer den eneste forbedring af betydning fremstillingsprocessen, der bruges til at lave G92-dies. Hvad der begyndte livet som en 65nm chip er siden blevet givet et lille 55nm klem. Følgelig er hver af dem en smule fysisk mindre, og smallere dies giver billigere chips. Alt sammen betyder, at GTS 250 alt i alt bliver en lidt forældet entusiast-klasse-gpu, som bliver solgt til mainstream pris. Du kan nu få en 512MB GTS 280 til langt under 1000 kroner.

Hvad så med AMD's Radeon HD 4770? Altså, den er ny hele vejen igennem og er prydet med en arkitektur optimeret til at give den bedst mulige ydelse, når det virkelig batter for mainstream kunder. AMD har derfor besluttet, at fokusere chippens ressourcer stærkt på shader-beregning. Med ikke mindre end 640 stream-processorer og en kerne clock-hastighed på 750MHz, har 4770eren omkring 75 procent af den rå beregningskraft AMD’s hurtigste enkelt-gpu, Radeon HD 4890’eren. Det er et kort, der typisk sælger for næsten 1.800 kroner og er derfor to en halv gang dyrere end 4770’eren.

Et spørgsmål om båndbredde

Ja, 4770’eren matcher også 4800’eren, når det kommer til pixel-ydelse med 16 ROPs og den kommer tæt på i tekstur-beregningsafdelingen med 32 enheder, kun otte færre end dets storebror. Faktisk, når det kommer til floating point beregningskraft - en interessant men i nogen grad akademisk måling af en grafikchips beregningsgrynt - klarer 4770’eren endda at komme inden for omkring ti procent af Nvidias mægtige GeForce GTX 285, et grafikkort der sælger for omkring 2.400 kroner.

Hvordan har AMD så klaret dette til så lav en pris? Det har de gjort ved at reducere størrelsen af 4770’erens die. Til at starte med, takket være 40nm chip-produktionsteknologi, har 4770’eren de mindste transistorer, der endnu er set i en gpu. AMD har dog også lavet et meget betydningsfuldt kompromis i arkitektoniske termer. 4770’eren har en 128bit hukommelsesbus. Det er den halve bredde af GTS 250’eren hukommelsesbus og en fjerdedel af størrelsen på en GeForce GTX 285’ers.

Fordelen er lavere produktionsomkostninger. Den smallere bus kræver færre forbindelser, og det gør både chip-pakningen og grafikkortdesignet simplere og billigere. Straffen er, selvfølgelig, mindre båndbredde ind i og ud af gpu'en. Det lyder slemt, men AMD ved, at ved lavere opløsninger er båndbredde mindre kritisk. Da 4770’eren er et mainstream kort, så er det ikke sandsynligt, at det bliver parret med store skærme med høj opløsning - i enkeltkortskonfigurationer, i hvert fald. I stedet vil 4770’eren typisk komme til at køre 20- eller 22" skærme med grid på 1.680x1.050 pixel.

Du undrer dig måske over, hvad alt dette har at gøre med multi-gpu-ydeevne. Faktisk er det meget relevant af grunde, der i sidste ende involverer hukommelsesbåndbredde. Til at starte med kommer enhver multi-gpu-opsætning med øgede forventninger. Med mange kort, og motherboardet der er nødvendigt for at understøtte dem, ser du på noget rimeligt dyrt udstyr. Det betyder igen, at du vil være mere tilbøjelig til at køre med højere opløsninger.

Multi-gpu-teknologiens mekanik tæller også. For at gøre en lang historie kort, så er den mest almindelige multi-gpu-renderingsmetode alternate-frame rendering (AFR), der, som navnet antyder, indebærer, at gpu'erne skiftes til at tegne hele billeder. Det kræver, at begge kort har en fuld kopi af de grafiske data, og det forværrer problemet med båndbredden. Det er præcis her, at forskellen mellem Radeon HD 4770 og GeForce GTS 250 er mest udtalte.

Som vore benchmark-resultater vil vise, har de Radeon HD 4770 i en dobbelt-gpu CrossFireX konfiguration en grim vane med at miste tråden ved højere opløsninger. Far Cry 2 er det bedste eksempel, hvor ydeevnen falder forfærdeligt brat over en opløsning på 1.680x1.050. Jeps, det er 4770’erens utilfredsstillende 128bit hukommelsesbus, der forårsager skaden. For at gøre det hele værre, er tidlige eksemplarer af 4770’eren, inklusive de HIS-kort, der testes her, begrænset til 512MB. Ved virkelig høje opløsninger og detaljeindstillinger kan det tvinge kortene til at bruge systemets hovedhukommelse til at lagre grafikdata, hvilket yderligere forringer ydelsen.

I modsætning hertil udgør GTS 250’erens entusiast-klasse rødder og 256bit hukommelse en lagt bedre platform for multi-gpu krumspring. Efterhånden som opløsningerne øges, bevarer det roen og yder på en langt mere lineær måde. Det, at Gigabyte og Zotac GTS 250 kortene brugt til denne test havde 1GB frame-buffere, hjælper også. Dette er særligt sandt ved den episke 2.560x1.600 opløsning hvor data, der swapper over PCI-e-bussen, kan blive et kæmpe handikap for 512MB kort.

For grafikprocessor enhedsarkitektur-studerende er der ingen bedre emner at studere end ATI Radeon HD 4890 fra AMD og Nvidias GeForce GTX 285. Som individuelle grafikkort bliver de betragtet som puristens valg og de allerfineste gpu'er fra de to 3D grafikhardware-mestre.

Disse to grafikkort er også fascinerende at sammenligne. GTX 285’eren er intet mindre end en brutal grafik-knippel til dine spil. Med 1,4 milliarder transistorer er den største enkeltprocessor-die, der er til rådighed til pc'en for tiden - og det inkluderer både grafikprocessorer og den mere traditionelle cpu. Til sammenligning klarer Intels seneste quad Core i7 processor sig med sølle 731 millioner transistorer, omtrent det halve af hvad GTX 285eren har.

Ja, faktisk er GTX 285 en rigtig sværvægter på snart sagt alle målinger. Den pakker ikke mindre end 32 renderings-outputenheder og hele 80 teksturenheder sammen med 240 af Nvidias samlede og symmetriske stream-processorer (det er altid værd at huske, at AMD’s og Nvidias shadere ikke direkte er sammenlignelige - selvom som en grov rettesnor kan man, for at sammenligne, dividere AMD’s tal med fem). GTX 285’eren kan altså pumpe et stort antal pixels ud.

I multi-gpu-ydeevne sammenhænge er det GTX 285erens hukommelsessubsystem, der virkelig gør forskellen. Nu når AMD kaster håndklædet i ringen på over-gpu'er, er denne chip unikt udstyret med en 512bit hukommelsesbus. Kombineret med GDDR3-hukommelse, der kører med en effektiv hastighed på op over 2,4GHz, er resultatet 159GB/s rå båndbredde. Når du forsøger at flytte omkring med de umådeligt store mængder grafikdata, der kommer med de seneste spil, der kører med utroligt høje opløsninger, såsom 2.560x1.600, ja så er så meget båndbredde ekstremt bekvemt.

Radeon HD 4890eren er et meget anderledes bæst. Den har betydelig færre transistorer, bare 956 millioner. Den er, kort fortalt, en langt mindre kompleks chip. På mange måder er den dog også meget smartere. AMD har virkelig gjort noget ud af denne chips' shader array og proppet 800 streamprocessorer ind den. Følgelig leverer den faktisk mere teoretisk beregningsgennemløb end den langt større GTX 285. For en ordens skyld skal det nævnes, at vi taler 1,36Tflops fra AMD-lejren sammenlignet med 1,06Tflops fra Nvidia.

Begrænsede opgaver

Selvfølgelig, for at opnå floating point ydeevne i mindre, billigere men velsagtens mere elegante chips, er noget nødt til at vige et andet sted. 4890’eren har bogstaveligt talt det halve renderingsoutput- og teksturenheder, bare henholdsvis 16 og 40, sammenlignet med GTX 285’eren. Dets 256bit hukommelsesbus er ligeledes 50 procent nede. AMD har i nogen grad opvejet det ved at bruge den seneste og største GDDR5 hukommelsesgrænseflade, der kører med effektiv clockhastighed på 3,9GHz. Den totale tilgængelige båndbredde er dog stadig langt fra at nå 125GB/s.

I en enkelt-gpu konfiguration giver AMD’s designvalg rigtig meget mening. Trods alt er 4890’eren ikke en fuld entusiast-klasse-gpu. Langt de fleste mennesker, som køber det, vil aldrig køre opløsninger højere end1.920x1.200. Hvorfor så spilde store mængder konstruktionsressourcer og skubbe chippens omkostning op for at optimere den til opløsninger som 2.560x1.600? Vi lader gladelig Nvidia jage det lillebitte marked, synes beskeden fra AMD at være.

Når det kommer til at få disse kort i god multi-gpu form, så bliver disse højere opløsninger og billedkvalitetsindstillinger imidlertid pludselig et langt vigtigere emne. Jo mere du skruer op for antallet af pixels eller tilføjer masser af anti-aliasing og anisotropisk filtrering, jo mere vil båndbreddemangler, både inde i og uden for gpu'en, trække ydelsen ned.

På papiret har vi derfor en kamp mellem et par kort, der er snildt designede til at levere maksimal ydelse inden for en relativt begrænset opgave (det er Radeon-kortene) og et par, der er lavet uden at spare på udgifter (jeps, det er GeForce-kortene). Reflekteres dette så i præstationsresultaterne?

I det store og hele vil vi sige ja. Når tingene bliver rigtig seje, er det de to GTX 285’ere, der giver de bedste resultater. Benchmarktal er dog lidt forvrængede, da omkostningen ved at køre to kort har det med at begrænse framerate-resultaterne. Det er derfor de gennemsnitlige framerate-tal ved 1.680x1.050 og 1.920x1.200 ligner hinanden.

Derfor er det på mange måder minimum framerates der tæller i denne del af markedet. Med andre ord, hvilken forskel gør det, om framerates er høje nok til at give glat rendering i det mest krævende scenarier? Her har GeForce-kortene en klar fordel. Selv ved 2.560x1.600 med renderingsmotoren sat til fuld genophedning, er flydende glatte 50 billeder i sekundet så lavt som GTX 285-opsætningen vil gå i Far Cry 2. Til sammenligning har Radeon-kortene et nedre vendepunkt ved kun 37 billeder i sekundet. Det er en lignende historie med Crysis Warhead, hvor GTX 285’erne kommer tættest på rent faktisk at køre det mest ulideligt krævende spil i maskinmotorhistorien glat.

Hvad der også er til Nvidias fordel er fornemmelsen af, at der i denne del af markedet ikke bliver lagt så stor vægt på at få valuta for pengene. I enkeltkortskonfiguration ser GTX 285 ud til at være et dårligt køb for pengene i forhold til et Radeon HD 4890. Har du derimod råd til 4.000 kroner for et par 4890’ere, så kan du nok også strække dig til 6.000 kroner for GeForce-kortene. Hvis du så endda har en 30" lcd-skærm, og vil have den bedste dual-kort-ydelse, så er det lige præcis det, vi vil anbefale dig at gøre.

Kan man få for meget af en god ting? Det er det første spørgsmål, der dukker op i sammenhæng med disse latterlige dual-kort, quad-gpu grafikløsninger. Altså det, og så det om din tilregnelighed for overhovedet at overveje, så ansvarsløs en dekadence.

Til at starte med er de rå specifikationer for både ATI Radeon X2 CrossFireX og Nvidias konkurrerende GeForce GTX 295 SLI næsten for meget til at kunne forstå. I ingen særlig orden inkluderer højdepunkterne en samlet mængde på næsten 8GB grafikhukommelse delt mellem alle fire kort, på vej mod en terabyte i sekundet hukommelsesbåndbredde og 2.560 stream shader-kerner. Galskab.

Så er der mere galskab: Prisen. Du får ikke mange byttepenge tilbage på 7.000 kroner for et par Radeon HD 4870 X2 kort. Det er svært at tro, men GeForce GTX 295 duoen er endnu værre med lige under 9.000 kroner. Medmindre du er en folkevalgt, der skummer fløden på skatteborgernes bekostning, er den ret svær at sluge. Disse kort er også kæmpemæssige fysiske eksemplarer, umådeligt lange og enormt tunge.

Ultimativt er det nødvendigt at fjerne selve konceptet om pris fra ligningen, hvis 4870 X2 CrossFireX og GeForce GTX 295 SLI overhovedet skal give mening. For den sags skyld, givet hvor meget strøm disse to rædsomme kort bruger, må du også hellere lade være med at tænke på fugles, biers og skønne gamle træers levebrød. Med fire dyre gpu'er i din pc vil du se et system, der sluger omkring 700 watt og det er ikke engang inklusive skærm eller højttalere. Med de nuværende bekymringer om miljøet in mente, er det sikkert direkte umoralsk.

På samme tid er der også den gale videnskabsmand i os, der ikke helt kan modstå tiltrækningen ved den mest kraftfulde grafikløsning, der er tilgængelig for menneskeheden. Hvem ville ikke gnægge af fryd og råbe "Den er i live!" når fire monster-gpu'er fyrer op under kedlerne? Okay, måske er det bare os... Problemet er, at latteren hurtigt bliver til tårer, når du inspicerer benchmark-resultaterne.

Før vi kommer til den detaljerede præstationsanalyse, skal vi dog lige minde os selv om, hvad der får disse bæster til at tikke. Radeon HD 4870 X2 har været omkring et stykke tid og er baseret på et par af AMD’s enormt succesrige RV770 gpu’er. Nøglespecifikationerne inkluderer 1.600 stream shadere pr. kort, en kerne clockhastighed på 750MHz og 1GB GDDR5 hukommelse, der kører med en effektiv hastighed på 3,6GHz. I alt pakker hvert kort næsten to milliarder gpu-transistorer og en teoretisk maksimum beregningsevne på 2,6Tflops.

Ingen kompromiser?

Det siger sig selv, at du kan fordoble de fleste af de tal for at par af 4870 X2ere, der kører i quad-gpu CrossFireX tilstand. Den måske bedste ting ved 4870 X2’eren er dog, at den ikke tager så meget som et enkelt kompromis med sig i forhold til det enkelt-gpu kort, som det er baseret på. Det har samme clock-hastigheder og hukommelsesbuffer som Radeon HD 4870 kortet. Det betyder, at når CrossFire-tilstand ikke virker, så kan du i hvert fald være sikker på, at få den bedste enkelt-gpu ydelse, som AMD kan tilbyde. Eller det var i al fald sådan, det plejede at være, indtil AMD frigav det lettere opgraderede Radeon HD 4890, Sådan går det.

Med hensyn til GeForce GTX 295’eren, så følger den en lidt mere typisk vej for multi-gpu grafikkort i og med at der er blevet lavet nogle kompromiser. Det er baseret på Nvidias episke 1,4 milliard-transistor GT200 GPU. Den grufulde strømhunger fra denne chip er dog sådan, at Nvidia var nødt til at hugge lidt af hist og her. Heldigvis inkluderer det ikke shader-arrayet. Alle 240 enheder er til stede og aktiveret i begge gpu'er, hvilket giver 480 pr. kort og 960 i quad-gpu SLI-konfigurationen. Ligeledes optræder alle 80 tekstur-enheder. Tag imidlertid et hurtigt kig på clock-hastighederne, og du begynder at se, hvor Nvidia har skudt genveje. Både kerneclockhastigheden på 576MHz og shaderclockhastigheden på 1.242Mhz er pænt under dem, som det hurtigste enkelt-gpu GT200 kort, GeForce GTX 285, har.

Hvad mere er, Nvidia har givet kniven til GT200’eres renderings-output, og reduceret tallet fra 32 til 28 pr. gpu-kerne. Det har igen en afsmittende effekt på hukommelsesbussen og framebufferen. Den første skrumper fra 512bit til 448bit, mens den sidste dropper fra 1GB til 896MB, igen pr. gpu. Alt dette betyder, at i den uheldige situation, at multi-gpu skaleringen ikke virker, så vil systemer baseret på både Radeon HD 4870 X2 og GeForceGTX 295 SLI ikke kunne matche ydelsen af deres nærmest relaterede enkelt gpu. Det er en tanke, der kan bringe en ned på jorden, når man tænker på, hvor meget disse kort koster.

Den gode nyhed er, at i vores benchmarks er der ingen tegn på, at hverken CrossFireX eller SLI ikke giver i det mindste nogen multi-gpu-skalering. Begge er generelt væsentligt hurtigere end de bedste enkelt-gpu-kort på markedet nu. Hvis du imidlertid regner den hurtigste dual-kort løsning med i konkurrencen - et par Radeon HD 4890ere fra AMD eller to Nvidia GeForce GTX 285ere - så begynder det at falde fra hinanden.

I Nvidia sammenligningen leverer quad-gpu'en meget lidt ekstra ydelse i World in Conflict og er faktisk væsentligt langsommere i Far Cry 2, selv om den dog tager en let sejr i Crysis Warhead ved den entusiast-orienterede 2.560x1.600 opløsning. I AMD-lejren vil det, at punge ud til en quad-gpu købe dig en moderat bedre ydelse, omkring 20 til 25 procent i Far Cry 2 og World in Conflict, men du er nødt til at sluge en ydelses-straf i samme størrelsesorden i Crysis Warhead. Er quad-gpu'er følgelig at gå lidt for langt? Det mener vi.

Der er ikke noget helt som en stortest til at få luget lidt sandhed frem. Denne gang må den mest umiskendelige observation være, at der er en grænse for, hvor langt man for tiden bør gå med multi-gpu-teknologi. For at sige det rent ud, så stank både AMD’s og Nvidias quad-gpu-installationer.

Den anden store negative ting vi observerede, var det faktum, at multi-gpu-pålidelighed forbliver lidt under hvad vi kunne ønske. Ganske vist havde vi relativt få problemer under installationen. Faktisk gik den del af processen glat undtagen for GeForce GTS 250 parringen, som krævede rædsomt meget fedten rundt. I det tilfælde brugte vi dog kort fra to forskellige forhandlere med lidt forskellige clock-hastigheder, hvilket aldrig er et ideelt scenarie. Lad det tjene som en påmindelse om, at hvis du beslutter dig for at begynde at mikse og matche, så er der ingen garanti for at du ender med et system, der virker.

Andetsteds, nægtede Radeon HD 4890erne at køre Crysis Warhead i DX10-tilstand, hvilket tvang os til at optage resultaterne i DX9. Det var et særligt mystisk problem, givet at det andet AMD-par kørte DX10-stien uden problemer. Alt i alt lyder det måske ikke af meget. Fakta er dog, at når vi tester enkelt-kort har vi sædvanligvis ingen stabilitets- eller kompatibilitetsproblemer, punktum. Det er den slags fejlfri pålidelighed, vi forlanger fra multi-gpu teknologien, før vi vil give den en totalt uforbeholden tommelfinger opad.

Lad dog være med at tænke, at alt var skidt. Der er rigeligt med gode nyheder. Vi er ekstremt imponerede over både den regulære ydelse og ensartetheden af GeForce GTX 282’erne. Var pengene underordnet, så var det disse kort, vi ville vælge til at køre i en spille-pc forbundet til en stor skærm. Vi ville nu heller ikke sparke et par 4890’ere ud sengen.

Tilbage i den virkelig verden er penge selvfølgelig meget en indsigelse, og af den grund vil du ikke blive overrasket over at høre, at vores samlede vinder kommer fra den mest betalelige tredjedel at vores test. Det er dog ikke Radeon HD 4770’erne, selv om de sandelig fortjener en ærefuld omtale. Et par kan fås for omkring 1.600 kroner, brugbart billigere end et enkelt Radeon HD 4890 kort. Vigtigere er det, at så længe du kører med rimelige opløsninger, så er de to 4770’ere den hurtigere løsning.

Førstepræmien går dog til de gamle pålidelige GeForce GTS 250-kort. På nogle måder er det næppe et overraskende resultat. De er trods alt baseret på et ret gammelt grafik-chipset. På en 1GB-beskæring er et chipset dog usædvanligt godt optimeret til multi-gpu implementationer. Hvis du har en 24" skærm eller måske en af de seneste full HD 22" paneler, vil et par 1GB GTS 250’ere give dig væsentligt bedre ydelse end nogen enkeltkortsløsning. Ja, det inkluderer absolut også GeForce GTX 285eren, og det hele for 2.500 kroner. Nok sagt.