NVIDIA grafikus kártya áthackelése professzionális megfelelőire

Címkék

Az NVIDIA jó ideje két (újabban három) sorozatba sorolja kártyáit:

  • GeForce - játékosoknak, átlagos felhasználásra
  • Quadro - professzionális felhasználására
  • Tesla - high-end & paralell computing piac számára

Az már széles körben ismert, hogy a gyártóknak olcsóbb, ha egy darab chipet gyártanak, majd azt kisebb/más tudásúra "nyomorítják"/módosítják, mintha minden egyes termékvonalhoz más-más chipet gyártanának. Korábban át lehetett alakítani az olcsóbb GeForce kártyákat drágább Quadro kártyákká, ha valaki megtalálta és lecserélte azokat az ún. "hardware strap"-eket, amelyeket a gyártó annak érdekében helyezett el a kártyán, hogy azzal visszabutítsa/módosítsa az általa gyártott hardvert.

Ezek a "hardware strap"-ek határozzák meg azt, hogy az adott kártya milyen PCI Device ID-t jelent magáról a gép felé, illetve azt, hogy az NVIDIA által írt eszközmeghajtó-programok a kártyára integrált chip mely szolgáltatásait, funkcióit használhatják. Nemrégiben az NVIDIA változtatott a fent leírtakon, ezért egy ideig (néhány kártyageneráció ideig) nem volt lehetséges egyszerűen átalakítani a gyártó kártyáit.

Voltak azonban, akiket nem hagyott nyugodni a gondolat.

Az "EEVblog Electronics Community Forum" egyik tagja - "gnif" - egy NVIDIA GTX 690 tulajdonosa, amelyet egyrészt játék felhasználás céllal vásárolt, másrészt azért, mert az NVIDIA azt mondta a hardverről, hogy 2D-ben képes akár három kijelzőt is meghajtani, így a játék mellett többmonitoros környezetbe is jó választás lehet. Windows alatt.

Sajnos az NVIDIA-nál néhány okostóbiás úgy gondolta, hogy ha valaki Linux alatt akarna ilyen setup-ot összehozni, annak nem elég a GeForce kártya, hanem Quadro kártyát kell a gépébe dugnia. A probléma az, hogy a GeForce és a Quadro között súlyos tízezer forintos különbségek vannak. Ez főleg akkor bosszantó, ha az ember tudja, hogy a Geforce és Quadro kártyák "lelke" ugyanaz a chip és köztük mindössze az a különbség, hogy az NVIDIA egy fentebb említett "hardware strap" alkalmazásával mást jelent a számítógép felé.

Gnif elkezdett agyalni, hogy a GeForce GTX 690-ből hogyan tudna Quadro K5000-et csinálni. Mindkét kártyán ugyanaz a GPU található, viszont van köztük 1000 dollár (239 e Ft) árkülönbség. Ráadásul a K5000-es Quadro-n csak egy GPU található, ami ráadásul 25-30%-kal alacsonyabb sebességre van gyárilag clockolva, mint a GeForce kártyán található ugyanolyan két GPU.

Gnif rájött, hogy az NVIDIA SMD ellenállások értékeivel trükközik, azokkal állítgatja a PCI Device ID-t. Eredetileg a GTX 690 "0x1188" eszközazonosítóval rendelkezik. Ahhoz, hogy belőle Quadro K5000 legyen, ezt az azonosítót kellett módosítani "0x11BA"-ra. Az ellenállások a következő értékeket képviselik:


 5K = 8
10K = 9
15K = A
20K = B
25K = C
30K = D
35K = E
40K = F

Vagyis, ha a megfelelő helyen kicseréli az ellenállásokat egy 20K-sra és egy 15K-sra, akkor a GeForce GTX 690 kártya azt hazudja magáról, hogy ő egy Quadro K5000. Ha az ellenállásokból "0x118F"-et hoz össze (csere 5K-s és 40K-s ellenállásra a megfelelő helyen), akkor a GeForce GTX 690 azt mondja magáról, hogy ő egy Tesla K10.

Gnif egyelőre csak azt tudta azonosítani, hogy melyik ellenállásokat kell lecserélni a hátsó GPU-hoz. Az első GPU-hoz tartozó ellenállásokat még nem tudta azonosítani.

GeForce GTX 690 mod #1

GeForce GTX 690 mod #2

GeForce GTX 690 mod #3

GeForce GTX 690 mod #4

Sajnos gnif-nek csak egy kártyája van, ezért nem szívesen kísérletezné ki random forrasztásokkal egyetlen kártyáján, hogy mit kell az első GPU-hoz áthackelni. A GPU1-nél egyértelmű, hogy mit kell megváltoztatni, azonban a GPU0-nál nincs semmi jel vagy utalás arra, hogy mit kellene megváltoztatni ahhoz, hogy az is Quadro-t vagy Tesla-t jelentsen magáról. Azonban ha annyi támogatás érkezne, hogy fedezné a kártya árát, amin kísérletezhetne, akkor megkeresné a megoldást.

A részletek itt.

Hozzászólások

Szoftveresen ebbe nem lehet belenyúlni?

Anno, mikor kijott az elso ATI zart forrasu driver linuxra, akkor bele volt drotozva, h minimum r8500 kell neki, de nekem csak 7500-am volt otthon a gepben. Akkor a driverben egy hexaeditorral sikerult ugy atszabni a kodot, h a 2D resze vigan mukodott a 7500-zal is, a 3D-nel mar elment a kedvem. Szoval nem szukseges rogton vesovel hasitani a söratomot.

---
pontscho / fresh!mindworkz

Hülyeséget írtam :D Megesik.

----------------------------------------------------------
"One should strive to achieve; not sit in bitter regret."
www.xonotic.org

No, nem vagyok egy hardver guru, de azért itt nyilván nem olyan egyszerű ez a játék.

Pl. azt szakmai helyen hallottam, hogy játékra szánt GPU-val veszélyes tudományos számításoknak nekimenni, mert a játékra szántak hűtését úgy tervezik, hogy belekalkulálják: nincs folytonosan az összes mag csúcsra járatva. Ezért a tudományos célra szántakban a hűtés is jobb és lejjebb veszik az órajelet is, hogy a napi 24 óra, kifinomult programokkal agyonterhelt üzemet is bírja a cucc.

Lehet a chipkészlet azonos, de ha így sikerülne is megbolondítani az elektronikát, akkor is még az egyéb tervezési különbségeket is át kell hidalni, különben lehet, hogy a felturbózott kártya elfüstöl.

Szerintem.

Es a melegedes valamint tulhajszolasbol adodo szamitasi hibakat hogyan kompenzalod? Mert az kit ertekel, h ha a TuxRacerben ket pixel egy random pingvinen vilagosabb, de ugyanez a kulonbseg egy N-test modellezesnel mar szignifikans lehet. Ezert szoktak a pro kartyakat "underclockolni" es jobb hutessel tervezni, mint a gamer szemetet.

---
pontscho / fresh!mindworkz

A probléma, amit első körben meg akart oldani, az az volt, hogy ne kelljen Linux alá 3 monitor meghajtásához egy 200 ezer forinttal drágább kártyát venni. Elmondása alapján Windows alatt a GeForce képes erre. Linux alatt meg Quadro kéne hozzá. Azt azért tételezzük fel, hogy ugyanaz a chip ha képes Windows alatt 3 monitort meghajtani, akkor erre Linux alatt is képes és nem fog tőle elfüstölni. Mindössze arról van szó, hogy az NVIDIA a linuxos driverben a három monitor támogatást - ki tudja miért - a "0x11BA" eszközazonosítóhoz köti.

--
trey @ gépház

De ha Windows alatt keps 3 monitor meghajtasara, akkor nem a kartyat kellene butykolni, hanem az nVidia driver fejlesztoire ragyujtani az irodat, vagy ha nem rajtuk mulik, akkor a tobbiekre.

Egyebkent nekem ott santit a tortenet, hogy mintha par eve arrol lett volna szo, hogy egysegesitette a driver kodjait az nVidia. Szoval, vagy valami direkt szoftveres limitaciorol van szo, vagy az egyeb feluletek, amiket meg a driver buzeral/drivert hivogatja nem kepes normalisan lekezelni a 3 monitort. (Vagy tul nagy eroforrasbefektetest igenyelt a raganyolas vagy egyeb).

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Chrome-ot jobban szoktam szeretni (ott nem sikerült rábeszélni még a --enable-webgl --ignore-gpu-blacklist opciókkal sem), de a Firefoxos valóban működni látszik, ellenben a HTML5-ös Youtube nem tökéletes. Ott már visszaálltam flashre, de valami szívás még van vele.

Az egyik MOOC-hoz jönne jól, ha a WebGL-Youtube páros rendben menne.

Nezd meg az nVidia Tesla-t es egy standard gamer kartya fenykepet, azonnal latszik. Pl. a GTX600-as sorozatig a gamer kartyak nem tartalmaztak termalis vedelmet, az csak a profi kartyak tulajdonsaga volt, ennek is volt koszonheto, h a Starcraft legutobbi resze el is egetett nehany videokartyat nehany juzernel. Szo szerint elkokszolta.

---
pontscho / fresh!mindworkz

Csak ugy fyi, az nVidia (es az ATI/AMD is) ugy oldotta meg a tulmelegedes problemat, h szandekosan unoptimalis kodot fordit a shaderekbol es ket pixel kozott hagy idot a vasnak hulni. A Starcraft2-nel a kezzel optimalizalt shader kodok es a nem limitalt fps volt, h megsutotte egyeseknel a vasat. Azota kerult az nVidia-nal az ocska szarokba is normalis termal protection ami addig a profi cuccokban alapfelszereles volt.

---
pontscho / fresh!mindworkz

Ezekről a grafikus procikról nincs valami publikus, gyári katalógus? Vagy csak titkotartási nyilatkozat mellett van ilyen adat róla, hogy pl. mik a lábai, hogy kell használni, stb.?

Miután a K5000-es tulaj levette a hűtőt a chipről, megállapította, hogy arra bizony GTX690-es azonosító van gravírozva.

Nem tudnak összehozni egy ilyen kártyát egy röntgen-géppel?
Hamar ki lehet deríteni hogy mi merre van benne és merre mennek vezetők a sok sok réteg között.

szóval, ha jól értem, kerül egy videokártya mondjuk 50.000 forintba. ráforrasztanak pár bolhapiszkot, és ettől feleannyiba fog kerülni.
Ez miért is jó akárkinek?

Erre azt tudom mondani, hogy tudtommal az Intel processzorok gyártásakor történik a következő:
- Egy típuson belül minden processzor ugyanazon tervek alapján készült.
- A gyártási folyamat következményeképpen az egyik processzor így, a másik úgy sikerült, ez a tesztelés során kiderül.
- Ezek alapján különböző maximális órajelfrekvenciájú processzorként árulják. Pedig a terv ugyanaz volt.

Itt is el tudom ezt képzelni: van, ami jobban sikerült, ebből nyilván kevesebb van, ezt eladják drágábban, mert itt tudnak garanciát vállalni a helyes működésre. A kevésbé jól sikerülteknél meg nem engedélyezik azokat a funkciókat, amikre nem garantálható a stabilitás.

Végtelenül leegyszerűsítve, igen. Egyébként:

NVIDIA Quadro K5000 - ~ 600-650 ezer forint
NVIDIA GeForce GTX 690 - ~ 300 ezer forint

Mindegyiket ugyanaz a chip van. A különbség, hogy az olcsóbb kártyán 2, a drágábbon 1.

Hogy ebben mi az üzlet? Hogy nem kell milliárdokért két különböző gépsort beállítani.

Nem újdonság ez. A processzorgyártók már régen alkalmazzák ezt. Régebben is voltak olyan megoldások, hogy a processzorok közül kiválasztották a jobban sikerülteket (nagyobb frekvencián is stabilabban megy). Ezekből lett a magasabb órajelű változat, meg Extreme Edition meg minden lópikula. Rémlik olyan is, hogy az olcsóbb, fele annyi cache-t tartalmazó processzorban is benne volt a több cache, csak le volt tiltva hasonló megoldással és egy megfelelő ponton végzett pontos fúrással simán vissza lehetett engedélyezni.

A lényeg, gazdaságosabb egyet gyártani és megnyomorítani, vagy a gyengébb példányokat adni value kategóriában. Vagy - viszonyítás kérdése - a jobban sikerülteket adni prémium áron hangzatos marketing név mellett.

--
trey @ gépház

Azert abban meg esetleg, talan, egeszen veletlenul látsz raciot, hogy a jobban sikerult darabok azert os drágábbak, mert mondjuk kevesebbet lehet belőle gyártani es igy dragabb az előállítása? Es ügye most egy ideig-óráig használt gamer kartyat hasonlítunk egy munkára tervezettel... Van hasznuk rajta jócskán, de ha egy nagyonjohoz 10-et kell gyartanom, akkor annak ügye 10 a költsége. Ha egyanannyiert adna, akkor mindenki a "profibbat" venne. Ergo akkor meg az tolja fel az arat.

---------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™"""

Nem kell nagyon túllihegni ezt a gamer meg munkára témát. Szállítunk gépeket tervezésre (ArchiCAD). A cég (világcégeknek terveznek) korábban megrendelte a Quadro kártyákat, mert hogy az biztos olyan hú de jó. Aztán rájöttek, hogy a marketing mellett a pénz is beszél és elkezdtek gamer GeForce kártyákat elmondásuk szerint teljesen jók. Azóta nem nagyon vesznek Quadro-t.

Persze, van különbség. Főként a support oldalon, driver, teszteltség oldalon. Amit aztán vagy ki tudsz használni vagy nem.

De nem akkora, hogy 100%-kal többet érjenek.

http://archicadwiki.com/VideoCardsForArchiCAD16

--
trey @ gépház

Ez milyen alapon fixa ideád?

"Fuhh, de meleg van! - mondta a gpu, s megtörölte a homlokát. Nem vette észre, hogy egy izzadságcsepp lecseppent a füzetére és egy egyértékű bitből így nullás lett. Hatvan évvel később egy darab vakolat levált egy bontásra váró házról e számítási hiba miatt."

Tapasztalati alapon. A gamer kartyaknal elofordul, h a 2+2 az neha 5, de lehet 6 is, ugyanazon kod tobbszori futtatasa eseten is. A profi cuccoknal ez ritkan megengedett. Nem veletlen kerul a Tesla/Fermi tobbe, mint a pistikenek szant darab, ahogy peldaul az ECC-s ramok sem veletlenul kerultek bele azokba a vasakba.

---
pontscho / fresh!mindworkz

Ezt szeretném, ha kicsit jobban alátámasztanád. Nem kötekedni akarok, ellenérvem sincs, csak nehezen veszem be. Gugli nem sok mindent talál a gamer videókártyák számítási hibáiról. Nehéz bevennem azt, hogy ha egy videokártya hibásan számol, akkor az kimerül 1-2 észrevehetetlen pixel hibában, vagy hogy ne csillagászatilag kicsi lenne az esélye. A saját szemed láttára jött ki néha rossz eredmény? Mekkora arányban, milyen behatások miatt? Azt gondolnám, hogy ha néha pár bit elmászik, akkor szinte folyton crashelne az egész gép, ha mondjuk a PCI buszra küldene vissza rossz bitet, vagy a képernyőn is eléggé látszódna, ha 1-2 szinkron jel nem stimmel. Leszögezem, fogalmam sincs ezen dolgok működéséről, csak kételkedek. Ha tényleg órajel és hűtés kérdése, akkor fogom a gamer kártyát, visszaveszem kicsit az órajelét, kicsit turbózok a hűtésen, és akkor máris olyan tökéletesen működik, mint a prémium, nem?

--

Nehéz bevennem azt, hogy ha egy videokártya hibásan számol, akkor az kimerül 1-2 észrevehetetlen pixel hibában, vagy hogy ne csillagászatilag kicsi lenne az esélye. A saját szemed láttára jött ki néha rossz eredmény? Mekkora arányban, milyen behatások miatt?

Talalkoztam mar en is ilyesmivel. Az arany passz, szamolta a kaszas, nem volt feladat es volt jobb dolgom is, mint ezzel szorakozni. :)

Azt gondolnám, hogy ha néha pár bit elmászik, akkor szinte folyton crashelne az egész gép, ha mondjuk a PCI buszra küldene vissza rossz bitet, vagy a képernyőn is eléggé látszódna, ha 1-2 szinkron jel nem stimmel.

Nem jol gondolod, mivel a renderelesi pontatlansagnak koze sincs a vezerles pontatlansagahoz, nincs osszefugges sem a ketto kozott.

Ha tényleg órajel és hűtés kérdése, akkor fogom a gamer kártyát, visszaveszem kicsit az órajelét, kicsit turbózok a hűtésen, és akkor máris olyan tökéletesen működik, mint a prémium, nem?

Igen, ez egy jo kezdet, de nem potolja pl. az ECC-s ramot, a hovedelmet es a jobb QA-t.

---
pontscho / fresh!mindworkz

Volt egy ilyen P1-esem, ritkán nem fagyott szét a gép,h a valamit félrematekolt. (Cserélték is gariban.)

És igen, láttam CPU errata-t, azok nagy része viszont tervezési hiba, nem az, hogy valamilyen külső behatás hatására (hőmérséklet, napszél, kutya rávizelt a gépre...) történt számítási hiba.

Különbség az, hogy az, hogy egy pixelnyit odébb kerül valami a Crysis sokezerben, az részletkérdés. Ha kettő még az is. Ha egy ilyen miatt lerobban egy gyár, az már kevésbé.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

"És igen, láttam CPU errata-t, azok nagy része viszont tervezési hiba, nem az, hogy valamilyen külső behatás hatására (hőmérséklet, napszél, kutya rávizelt a gépre...) történt számítási hiba."

Na és nem tök mindegy az épület összedőlése szempontjából, hogy miért keletkezett a hiba? High-end szerverporcesszorok is képesek hibázni. Tanulság: ahol kritikus a munkavégzés, ott a kapott eredményeket többszörösen ellenőrizni kell.

"Különbség az, hogy az, hogy egy pixelnyit odébb kerül valami a Crysis sokezerben, az részletkérdés. Ha kettő még az is. Ha egy ilyen miatt lerobban egy gyár, az már kevésbé."

Nem kell mindent túldramatizálni. Senki sem vitatta, hogy a professzionális felhasználásra a professzionális eszköz az ideális. Viszont az is igaz, hogy nem ritka, hogy nem veszik meg, mert felesleges. A tervezésnél is vannak szintek. Ha a főtervező megcsinálta a tervet, de azt meg kell nyitnia egy segédtervezőnek, akik az életben nem fog rajta változtatni, max. dokumentációt fog róla írni és csak az kell, hogy a lássa a rajzot, annak csont felesleges 700 ezer forintos kártya. De elmondanám, hogy a legélesebb gépen is az a sok éves tapasztalat, hogy bőven jó az olcsó kártya.

--
trey @ gépház

"akik az életben nem fog rajta változtatni, max. dokumentációt fog róla írni és csak az kell, hogy a lássa a rajzot, annak csont felesleges 700 ezer forintos kártya. "

Persze, feladathoz eszközt, de ettől még nem kellene ilyen nagy általánosságban kijelenteni, hogy olcsó kártya === drága kártya, utóbbi léte felesleges.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

" nem kellene ilyen nagy általánosságban kijelenteni, hogy olcsó kártya === drága kártya, utóbbi léte felesleges."

Ilyet senki sem állított. Mindössze annyit, hogy nem kell túlmisztifikálni, nem lehet egyértelműen kijelenteni, hogy a GeForce nem való munkára. Számtalan helyen végeznek vele komoly munkát.

--
trey @ gépház

Azért nem ugyanaz szerintem, mert az errata (amiket eddig láttam) egy nem tervezett, de valamennyire mégiscsak következetes hiba, amire ajánlanak szoftveres workaround-ot is. A rosszul matekozó videokártyát egy random, kivédhetetlen, megbízhatósági hibának állítják be itt a kollégák.

--

Matthew Dillon-nak több mint egy évébe telt egy olyan AMD CPU bugot megbízhatóan reprodukálnia, amiről a gyártónak fogalma sem volt. Semmilyen workaround sem volt rá addig, amíg az ember ki nem tesztelte, hónapig le nem levelezte. Az AMD megerősítette, majd errata-t adott ki a hibára.

"A rosszul matekozó videokártyát egy random, kivédhetetlen, megbízhatósági hibának állítják be itt a kollégák."

A gamer kártyákon mind a GPU-k, mind a memóriák frekvenciáját lehet állítani. Nem nagy csoda 20-30%kal underclockolni őket. A Quadro-ban is az az egyik nagy csoda, hogy gyárilag 30%-kal alacsonyabb az órajel a gamer kártyákhoz képest.

--
trey @ gépház

Az a baj veled, hogy olyasmit adsz a számba, amit én sosem állítottam. Ráadásul figyelmen kívül hagyod az "egyik" szót. Ezért van egyre kevesebb kedvem a troll formáddal beszélgetni.

Arra válaszoltam, hogy a melegedést ki lehet küszöbölni, lehet ellene tenni. A Quadro sem ok nélkül van underclockolva.

Egyébként nem, valóban nem kész a Quadro, mert ahhoz az egyik GPU-t le kéne forrasztani a GeForce-ról.

--
trey @ gépház

De, pontosan. De akkor nem jött át: itt egyesek azt fejtegetik, hogy a lassabb kártya, miért kerül drágábba (segítek nekik: minőségellenőrzés, garancia arra, hogy amit tud, azt jobban teszi, stb.), mint a gyorsabb, olcsóbb.

Erre írtam, hogy ha a profi célra szánt kártyákat is a teljesítményük szerint áraznák, akkor boldog-boldogtalan azt venné. Viszont annak előállítása összességében drágább lenne a kisebb kihozatal miatt...

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Légy szíves mutasd meg azt a dokumentumot, ami alapján az nVidia GARANCIÁT vállal arra, hogy a kártya helyesen számol. (Segítek: nem fogsz találni ilyet). Lehet, hogy komolyabb a Q&A folyamat, de ne misztifikáld túl. Sokkal valószínűbb, hogy - beállt gyártási folyamat esetén - a legyártott darabok túlnyomó többsége lehetne processzor a quadro kártyában is, valójában azért adják két különböző áron őket, mert a piac megfelelő szegmentálása a cél a profit maximalizálása érdekében.

Pontosan trey. Szinte mindenki ezt csinálja.

Zöldék gyártják mondjuk a 680-ra való gpu-t. Hasra ütök, van a waferen 200 lapka, ennek mittom én 80%-a működőképes, a működőképesek 60%-a hozza a 680 specifikációit, a többi vagy nem megy a megfelelő órajelen, vagy hibás egy-két SMX modul, vagy más résszel van gond... Azokat se dobják el, megy a lézerszike és kész a többi Keplerre épülő termék agya...

Ugyan így megy a dolog egy rakás más bizniszben is... Pl a mostani LG-tvmben ugyan az a belső van mint az egyik barátom hasonló korú de smart-os tv-jében...

A dolog forditva van. Kerul egy videokartya kifejlesztese - most csak saccolok - 5-10M $-ba. A legyartasa kerul 20-50$-ba. A darbaszam novekedesevel termeszetesen alacsonyabba gyartasi koltseg. tehat erdemes kozel uyganazt gyartani, sot ha nem ket kulon kartyat terveztek a fejelsztesi koltseg is oszlik.

Tehat 100.000 eladott darabot szamitva es a legmagasabb arakkal kalkulalava a darabszam 150 $. Na ezt adjak el neked ket fele verzioban 1000 es 2000 $-ert.

Máshol is így van. Volt anno nagyon régen a Samsung SGH-X100-as telefon. Annak volt kamerás, meg kamera nélküli változata is (a kamerásnak talán más volt a száma). A mienk kamera nélküli volt. De szétszedtem, és kiderült, hogy benne van a kamera. Nyilván nem terveztek 2 fajta telefont, csak 2 fajta hátlappal, meg 2 fajta FW-rel szállították.