Radeon vs. NVIDIA Linux alatt

Címkék

Michael A. Marks technikai igazgató az Aspyr Media-nál, annál a cégnél, amely AAA játékok OS X-re való portolásában jeleskedik. Marks mérnökként megfordult az AMD, a 3dfx, az NVIDIA, a Midway Games cégeknél, dolgozott olyan címek, mint a Call of Duty és Civilization DirectX -> OpenGL portolásán.

Marks nemrég bechmarkot készített Linuxon. Az NVIDIA és az AMD grafikus hardvereinek teljesítményét hasonlította össze. A tesztelést Ubuntu 14.04 LTS disztribúción, NVIDIA 331.79 és AMD 14.6 beta driverekkel végezte. A tesztekben egy NVIDIA GTX750-et hasonlított össze egy AMD Radeon R9 270X-szel.

A teszteléshez használt program megtalálható a github-on.

NVIDIA vs. Radeon Linux alatt

Gyakran merül fel a kérdés, hogy "Linux alá játékhoz melyiket válasszam?". Lassan évtizedes igazság, hogy Linux alá játékra csakis NVIDIA. Tekintve, hogy tesztben szereplő Radeon jóval drágább, valamint figyelembe véve a fenti számokat, plusz a saját Linux alatti tapasztalataimat, én azt hiszem, hogy maradok az NVIDIA-nál.

Marks számai nem befolyásoltak a döntésemben, tekintve, hogy a jelenleg Linux alatt játékra használt kártyámat tavaly novemberben szereztem be, viszont az ilyen teszteredmények egy kicsit mindig megerősítik bennem azt, hogy valószínűleg jól döntöttem.

Részletek itt és itt.

Hozzászólások

Ez a Maxwell architektúra elég jól sikerült

Okkal lett Nvidia a Valve referenciagépe. De eléggé sok Radeonos Steam Machinet is bejelentettek, azokhoz még sokat kell majd optimalizálni.

Ha nem tevedek ez egy szintetikus benchmark.
S mint ilyen, kb annyi ertelme van, mint annak a benchmarknak, amit meg egyetemi eveim alatt irtam, hogy bebizonyitsam, hogy az en 400Mhz es K6-2-esem kiralyabb mint az egyik szobatarsam 500Mhz-es Athlonja, es a masik szobatarsam 700Mhz-es Duron-ja.
A K6-2-es rovid pipeline-jat hasznaltam ki, 33%-al gyorsabb lett a procim a Duron-nal, es ha jol emlekszem vagy 5x gyorsabb volt az Athlon-nal. 80Mb EDO ram volt benne.

Jol elszorakoztunk vele egy delutan, de ennyi. Ugy tudom, hogy ha jatekokat hasznalnak tesztelesre, akkor az nVidia es AMD kartyak hasonlo aron hasonlo sebessegeket produkalnak. Egyesek szerint az nVidia driver jobb, s azert ajanljak, de nekem a Catalyst-tal sem voltak gondjaim.

szerk.: miutan kesz lett a benchmarkom, s mindenki lathatta az "igazsagot", a kovetkezo lepes az lett volna, hogy az 1Mb-os S3Trio64V2-esemmel legyozzem a szobatarsam 64Mb-os Geforce2MX-et... :) Lehetseges, hogy ez is megoldhato lett volna, de rovid tanulmanyozas utan nem volt semmilyen otletem, hogy hogy lehetne ezt osszehozni. :)

+1.
+ Nemrég volt ugye az a nagy balhé (még tart), hogy úgy szar az egész OpenGl ahogy van, és igazából ezzel van baja mindenkinek, nem az egyes kártyákkal.
+ Ha kell OpenCl is, vagy csak az kell, akkor az Nvidia felejtős.

--
Team Puli Space
http://www.pulispace.com
http://www.facebook.com/pulispace

Egy jo par kritikat es a rajuk adott valaszt elolvasva en arra jutottam, hogy:
1. az OpenGL ellen felhozott egyes ervek egyszeruen nem igazak
2. vannak dolgok amiben az OpenGL elorebb van mint a DirectX, a kiterjeszteseknek koszonhetoen gyorsabban jelenhetnek meg uj cuccok (meg persze vannak dolgok amiben le van maradva)
3. ha cross-platform programot akarsz kesziteni, akkor OpenGL van es kesz, es azert eleg sokan eleg jol tudnak dolgozni vele... pl. az osszes mobil platformon OpenGL (ES) van

Ugyhogy az "ugy szar ahogy van" allitas tavolrol sem allja meg a helyet, es nem kell felni, fejlodik szepen.

Idonkent elojon a DirectX vs OpenGL tema, pedig a kerdes egyszeru:
1. Win, Xbox -> DirectX
2. SteamOS (hehe), Android, iOS, Playstation -> OpenGL

Ha nem akarsz sajat 3D motort kesziteni, akkor meg egyaltalan nem erint a tema. Az Unreal Engine 4, meg a Cryengine3 szinte havi par sor araert berelheto. Az Unreal engine szinte meg egy kenyerpiriton is elmegy...

szerk: a kenyerpirito alatt nem a hardverigenyre gondoltam (nyilvan), hanem az elterjedtsegere, tamogatott platformok: Microsoft Windows, Linux, Mac OS X, Xbox One, PlayStation 4, HTML5, iOS, Android
Ezenkivul mintha volt meg szo Solaris meg BSD-rol is... (ezekben en ketelekedek, hogy valaha is osszejon)

"Egy jo par kritikat es a rajuk adott valaszt elolvasva en arra jutottam"

Pedig a vita alapvetően nem arról szól, hogy az OpenGL jobb-e vagy rosszabb mint a DirectX, hanem, hogy elavult-e mindkettő.
Sokan gondolják azt, hogy igen (lásd Mantle), és pl a DirectX 12 az alapoktól lett/lesz újratervezve.

A legtöbben hasonlót sürgetnek az OpenGL-lel kapcsolatban is...

Szerk.:
És erre az Apple bejelenti a Metal-t...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

OpenGL device contex beszerzese valoban eleg trukkos a kulombozo platfromokon,
SDL hasznalataval ez nem problema (marmint nem a te problemad).

Az hogy egyszerre egy szal beszelhet a driverrel nem problema, mivel ez nem szuk keresztmetszet,
egyetlen szal ki tudja hasznalni a savszelleseget. Hatekonyabban lehet lockolni utasitas csoportokhoz a programban, minthogy a driver minden egyes hivasnal implicite megtene.

Ami engem zavar, hogy egyetlen programnal nehezkes megoldani, hogy tobb kulombozo device contexed legyen (pl. 2 video kartya, ami total nem osszefuggo dolgot renderel) es tobb (2) parhuzamosan mukodo szal beszeljen veluk.

'Too Many Ways to Do The Same Thing' valoban, meg a nem deprecated megoldasok szama is eleg sok,
utana-olvasas vagy probalgatas nelkul nem mindig trivialis melyik a jobb ut.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

"Az hogy egyszerre egy szal beszelhet a driverrel nem problema"

Neked... Nekik meg igen. Ha feltesszük, hogy nem azért mert bénák, akkor csak az marad, hogy ez egy létező probléma.

Egyébként meg miért ne akarhatnék én egy szálon textúrát-vertex buffert feltöltögetni, shadert fordítani egy későbbi rajzoláshoz, miközben másik szálon mehet a rajzolás a korábbi adatokkal? Nekem ez nem tűnik egy légből kapott elvárásnak.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Nekem ebből valahogy az jött le, hogy a kérdés tulajdonképpen nem válaszolható meg. Minden attól függ, hogy hogyan írták meg a tesztprogramot, meg hogy az adott OpenCL implementáció az adott feladattípust mennyire képes optimalizálni. Az meg különösen érdekes egy ilyen összehasonlításban, hogy egyes tesztek le sem futnak bizonyos helyzetekben. Szerintem ilyenkor a legegzaktabb megállapítás az, hogy a kérdéses technológia még mozgásban van.

---
Science for fun...

Azért a driver support sem mindegy. Nvidia részéről például a geforce 2 MX-emhez még 2012-ben jött ki driver. A kártya több mint 10 éves volt ekkor. Az AMD ehhez képest nagyon "elmaradott".
Az intelnek meg open-source driverei vannak, csak valamiért linux alatt nemigen hozzák a windowsos teljesítményt :(

Ha a binaris driverre van szukseged, akkor sajnos a Catalyst tenyleg nem sok evig tamogatott. A nyilt driveruk viszont eleg jo allapotban van, nem hinnem hogy valaha is eleri a Catalyst sebesseget, de ha azzal nagyon jol ment egy jatek, akkor a nyilt driverrel meg elfogadhato a sebesseg. Ha a Catalyst-tal elfogadhato volt, akkor peched van, mert a nyilt driverrel ugyanaz a beallitas mellett tul lassu lesz :)

Ha nagy rendszerigenyu jatekokat akarsz jatszani, akkor nekem ugy tunik, hogy nVidia-val jobban jarsz, van amelyik jatekhoz azt ajanljak a fejlesztok. Nem tudok olyan jatekrol amihez kimondottan AMD-t ajanlananak.

Minden masra szerintem mindegy, hogy mit veszel.
Az AMD driverek uj kartyakhoz kesobb lesznek stabilak, de ha nem a legujabbat veszed, akkor ketlem, hogy gondjaid lennenek.

Mint mindig, vasarlas elott szet kell nezni, hogy pillanatnyilag mi mennyire tamogatott. A Phoronix.com-on pl eleg sokfele teszt van, sokfele videokartyaval.

Mivel, hogyan lehet megmérni a grafikus teljesítményt jól? Elsősorban Linux alatt, de az lenne az igazán jó, ha ugyanaz a cucc összehasonlítható eredményt adna Linux és Win7 alatt is.

Kéne kísérletezgetnem egy kicsit, mert valami nem jó.

Az új laptopban dual videokártya van, egy intel és egy AMD, de azt láttam, hogy az fglrx driver telepítése után lassabb lett (akadozott), mint korábban, amikor (valószínűleg) az intel kártya ment csak.

Feltételezem, hogy valami el van rontva, pl. driver vagy konfig, de jó lenne valami, amivel rendesen számszerűsíthetem a tesztek eredményét és látom, hogyan változik, ha ezt-azt átállítok.

Valamelyik külföldi oldalon olvastam, hogy az AMD-sek azzal vádolták az NVIDIA-t, hogy a játékokat fejlesztő csapatokkal ők együttműködnek, az AMD-seket viszont kiszorítják onnan. Ennek fényében érdekes, hogy mi lenne a helyzet, ha az AMD is szorosan együttműködne a játékfejlesztőkkel?

Ezt hívják Gaming Evolved programnak. Valamint amihez van Mantle leképző, ott minden esetben szoros együttműködés van, hogy minél jobban átlássák a fejlesztők az architektúrát.

Ehhez képest az NV-vel szorosan együttműködő cégek megkapják a GameWorks nevű kreálmányt, valamint 0 hardver dokumentációt, és meglepődnek, hogy olyan játékok jönnek, mint a Watch Dogs, ami mindkét architektúrán nevetséges (és kiszámíthatatlan) teljesítményt produkál.

------------------
My Open-Source Android "Projects"

Én ezt úgy oldottam meg, h a játékos desktop gépen windows fut. :)