Samogradnja – high-end eGPU

Datum objave 09.02.2015 - Hrvoje Gregur

High-end eGPU - prvi dio

egpu_gtx980_1

Nakon što smo vidjeli osnovne eGPU mogućnosti na prijenosniku kod kojeg sve funkcionira plug n play, pristupit ćemo sustavu gdje situacija nije toliko jednostavna te zahtijeva korištenje DSDT Overridea i DIY eGPU Setup 1.x aplikacije. Glavne zvijezde ovog članka bit će GTX 980 i Dell Precision M6800 pomoću kojih ćemo prikazati nekoliko mogućih eGPU implementacija i samu (ne)isplativosti High end eGPU sustava. Ovaj dio serijala bit će ispunjen poveznicama na korištene alate, tutoriale kao i mjesta gdje se sve potrebno može kupiti. Glavna baza ovog članka bit će Dell Precision M6800 čiju recenziju ste mogli nedavno čitati. Specifikacije ukratko: Intel i7 4810MQ 2.8GHz, Intel HD4600 i AMD FirePro M6100, 8GB DDR3L 1600MHz radne memorije, Seagate 500Gb SSHD, 17.3" FullHD. Ono što ćemo dodati u grafove rezultati su testova s prethodno korištenom Gainward GTX 760 Phantom kako bismo prikazali porast performansi u odnosu na Intel i3 3110M koji se nalazio u E5430. eGPU adapter koji ćemo koristiti je EXP GDC v6, a detaljnija rasprava o dostupnim i najčešće korištenim adapterima može se pronaći ovdje - http://forum.techinferno.com/enclosures-adapters/. eGPU ćemo ponovno spajati putem Express Carda. Korištena grafička kartica je MSI GTX 980 Gaming 4G - unaprijed smo znali da će performanse biti ograničene s PCIe x1 sučeljem, ali grafovi govore više od svih teorija.

egpu_gtx980_4

S obzirom na vršnu potrošnju GTX 980 kartice, umjesto Dell D220P adaptera koristit ćemo Antec EDGE 750W. Naravno, ako se kupuje napajanje za isključivo eGPU sustav, može se bez problema koristiti i slabije pod uvjetom da je dovoljno jako da pokrije i vršnu potrošnju same grafičke kartice kako ne bi bilo problema s nestabilnošću zbog nedovoljne snage napajanja. Kao eksterni ekran koristit ćemo Samsung UE39F5000. Korišteno:
  • Dell Precision M6800
  • MSI GTX 980 Gaming 4G
  • Gainward GTX 760 Phantom
  • EXP GDC v6 s Express Card konekcijom
  • Antec EDGE 750W
  • Samsung UE39F5000
  • DIY eGPU Setup 1.x
  Prvo pokretanje: Sad dolazi zabavan dio. Natjerati da sve to skupa radi :) Prvi, iznimno optimističan pokušaj bio je sve spojiti, samo upaliti i nadati se najboljem - za početak, koristili smo GTX 760 koja se pokazala da u velikoj količini slučajeva radi Plug n play. Rezultat je bio BSOD koji je prijavljivao APCI Error. S obzirom da smo tokom istraživanja eGPU sustava pročitali mnoga iskustva korisnika, jedno od rješenja je spajanje eGPU sustava nakon POST-a, a prije samog podizanja Windowsa ili spajanje eGPU sustava kad se računalo nalazi u Sleepu. Kod nas se korištenje Sleep metode pokazalo funkcionalno. Skoro plug n play. Prilikom idućeg boota dočekao nas je "Found new hardware" te smo nakon instalacije upravljačkih programa računalo ugasili kako bismo izbjegli BSOD s početka priče. Nakon idućeg paljenja, računalo smo stavili u Sleep, spojili eGPU, a sama grafička kartica je bila uredno instalirana te prikazana u Device Manageru.

jegpu_gtx980_9

Ovakav sustav korisnici nazivaju iGPU dGPU eGPU i moguć je na prijenosnicima koji koriste neku varijantu Switchable Graphics tehnologije. iGPU predstavlja integriranu Intel HD grafiku, dok dGPU predstavlja drugu grafičku karticu u prijenosniku koja je u našem slučaju AMD FirePro M6100. Prilikom ovakve implementacije, eGPU se može koristiti isključivo za grafičku akceleraciju eksternog monitora. U našem kratkom druženju s tom implementacijom, probleme u stabilnosti nismo imali bez obzira na istovremeno korištene upravljačke programe AMD-a, nVidie i Intela. Prilikom rada na eksternom ekranu, FirePro karticu mogli smo koristiti u programima poput Luxmark 2.0 i Cinebench 15 čiji su rezultati bili identični dobivenima u samoj recenziji M6800. Isti programi su uredno prepoznali nVidia grafičku karticu kada smo radili na internom ekranu prijenosnika. nVidia Control Panel nije se želio otvoriti prilikom rada na internom ekranu te je javljao grešku "You are not currently using a display attached to an NVIDIA GPU". Istovremeno korištenje internog i eksternog ekrana u ovakvom sustavu gdje su dGPU i eGPU različitog proizvođača nije moguće zbog ograničenja samih Windowsa kao i (ne)komunikacije upravljačkih programa.

egpu_gtx980_8

Detaljnija analiza eGPU sustava koji koriste iGPU, dGPU i eGPU u raznim Intel, nVidia i AMD kombinacijama nalazi se na našoj To-Do listi. Zbog ograničenog vremena na koje su nam GTX 760 i 980 bile ustupljene nismo bili u mogućnosti napraviti konkretnije analize. Neko pravilo je da sve to skupa puno bolje radi ako su dGPU i eGPU istog proizvođača, odnosno da se za instalaciju obje kartice koriste isti upravljački programi.

High-end eGPU - drugi dio

egpu_gtx980_5

Max performance Krenimo sada s osposobljavanjem Optimus tehnologije kako bi iz našeg eGPU sustava mogli dobiti maksimalne moguće performanse. Osnovni koraci za osposobljavanje Optimus tehnologije za prijenosnike koji koriste dGPU:
  1. Ovisno o korištenoj eGPU grafičkoj kartici napraviti DSDT Override
  2. Kompletno obrisati sav postojeći dGPU software u safe modu pomoću Display Driver Uninstalera te prilikom idućeg ulaska u Windowse instalirati samo iGPU upravljačke programe
  3. Nakon izlaska iz safe moda prilikom idućeg paljenja računala preporučljivo je u Device Manageru onemogućiti dGPU
  4. Instalirati DIY eGPU Setup 1.x, onesposobiti dGPU te izvršiti PCI compaction
  5. Spojiti eGPU i instalirati upravljačke programe
Iako ovih 5 koraka djeluje jednostavno, neki od njih zahtijevaju malo više igranja te mogu koštati poveću količinu živaca. Još jednom napominjemo da ovakav eGPU sustav nije podržan od strane proizvođača i da se radi primarno o DIY rješenju koje ponekad zahtijeva i malo više znoja.

 egpu_gtx980_2

DSDT Override Najveći problem većine eGPU sustava je error 12 („This device cannot find enough free resources that it can use.“) odnosno dodjeljivanje nedovoljne količine sistemskih resursa eGPU sustavu od strane Windowsa. Problem nije striktno vezan uz Windowse, nego i uz sam BIOS prijenosnika. U pravilu, za sve AMD i nVidia Maxwell kartice potrebno je napraviti DSDT Override kako bi se u dijelu memorije koji je zadužen za adresiranje svih uređaja u prijenosniku "napravilo mjesta" za naš eGPU. Mi smo pratili tutorial na ovom linku (http://forum.techinferno.com/diy-e-gpu-projects/7476-%5Bguide%5D-dsdt-override-fix-error-12-a.html#post102517) U detalje samog tutoriala nećemo ulaziti, ali najkritičniji dio je popravljanje errora nakon što ekstrahirate DSDT Tablicu, ubacite potreban kod za povećavanje adresnog prostora samih Windowsa te istu pokušate kompajlirati. Najjednostavniji način je kopiranje redaka u kojima compiler prijavljuje error u Google te ispravan kod potražiti na rezultatima pretraživanja što nas u većini slučajeva vodi na hackintosh forume. Nakon prvog rješavanja DSDT Overridea za svaki idući prijenosnik trebalo nam je 10ak minuta. DISCLAIMER: Obvezno koristite zadnju dostupnu verziju Windows Binary Toolsa, jer u protivnom postoji vrlo velika vjerojatnost upropaštavanja Windows instalacije s obzirom da se radi o promjenama po registry-u. Brisanje postojećih upravljačkih programa Nije toliko striktno za nVidia grafičke, ali je za AMD. Detaljno brisanje uz pomoć DDU potrebno je kako upravljački programi ne bi prepoznali dGPU, odnosno stvarali kasnije probleme. Iz istog razloga radi se i Disable u device manageru, kako bismo bili sigurni da se dGPU prilikom gašenja u DIY eGPU Setupu u sljedećem koraku u nekim tragovima ne bi nalazila negdje gdje ju ikakav softver može pronaći. DIY eGPU Setup 1.x Ovaj komad softvera je Pre-boot environment u kojem nam se otvara mogućnost kontroliranja uređaja spojenih na PCI sabirnicu te provjera ima li naš eGPU sustav dovoljno sistemskih resursa. Gasi se dGPU te se izvršava PCI Compaction. Već spomenuti razlog gašenja dGPU-a leži u činjenici da će dGPU uvijek biti korišten kao primarni grafički akcelerator za Switchable Graphics, odnosno da će uvijek na sebe povući korištenje Optimus tehnologije što znači da se korištenje Optimusa za eGPU onemogućuje i u konačnici to dovodi do puno sporijeg rada eGPU sustava. PCI Compaction se izvodi iz razloga što je AMD karticama potrebno kontinuiranih 256Mb adresnog PCI prostora te iako smo dovoljno prostora stvorili DSDT Override metodom, vrlo često nije kontinuiran. Recimo da pomoću PCI Compaction opcije preslažemo adresni prostor na način na koji to nama odgovara. nVidia grafičke kartice osim nedavno dostupnih Maxwell kartica te 650/TI serije mogu raditi s 128Mb+64Mb+32Mb, znači nije im potreban DSDT Override jer u pravilu većina prijenosnika koji posjeduju samo iGPU imaju dovoljno dostupnih resursa te zbog mogućnosti korištenja rascjepkanog adresnog prostora mogu raditi plug n play, kao što smo vidjeli u prvom članku sa Dell Latitude E5430 i GTX 760. Sve radnje unutar DIY eGPU Setupa mogu se automatizirati, tako da nakon paljenja računala osim nekoliko dodatnih sekunda u boot procesu nekakve promjene za krajnjeg korisnika nema. Ovdje smo samo ukratko pokušali objasniti što i kako te vas uz pomoć linkova usmjeriti - svaki prijenosnik je drugačiji i često mogu postojati razni međukoraci. Tu uskače zajednica na TechInferno forumu koja sadrži mnogo detaljnih implementacija - korak po korak te na temelju iskustava drugih ljudi i korištenje metode pokušaja i pogreške gotovo svaki prijenosnik može koristiti eGPU sustav. Uz gore navedene smjernice, eGPU sustav smo u prošlosti isprobali sa M6600, HP 2570p, HP 6570b te Lenovo L440 u raznim AMD / nVidia kombinacijama. Detalje i sve trikove koji su mogući s DIY eGPU Setupom 1.x možete pronaći na ovom linku. (http://forum.techinferno.com/diy-e-gpu-projects/2123-diy-egpu-setup-1-30-a.html#post27337) Jedan zgodan trik koji bismo još naveli - DSDT Override moguće je "mountati" preko DIY eGPU Setupa i na taj način zaobići diranje po registry-u i izlaganje nepotrebnom riziku. Kao referencu navest ćemo i točan redoslijed radnji potreban za osposobljavanje eGPU sustava na M6800.
  1. Za GTX 760 DSDT Override nije potreban, za GTX 980 jest
  2. Brisanje svog AMD softvera korištenjem DDU
  3. Instalacija Intel HD upravljačkih programa sa stranice proizvođača
  4. Instalacija DIY eGPU Setupa
  5. Onesposobljavanje dGPU u Windowsima, bez obzira što je prepoznat kao "Standard VGA adapter"
  6. Zaustavljanje Boot procesa prilikom biranja operativnog sustava i priključivanje eGPU sustava
  7. Ulaženje u DIY eGPU sustav gdje se rade sljedeće promjene:
    1. Initialize eGPU
    2. PCI Compaction - Ignore dGPU
    3. PCI Compaction - !Run compact on iGPU only
    4. Video Cards - Hybrid gfx disable dGPU
    5. Chainload - Test run
  8. Prilikom ulaska u Windowse sad nam se javlja "New hardware Wizzard" kojeg gasimo i instaliravamo nVidia upravljačke programe te gasimo prijenosnik kako bismo ištekali eGPU
  9. Palimo prijenosnik, ponavljamo korake 5. i 6. ako postupak u DIY eGPU Setupu nismo automatizirali
  10. Uživamo u eGPU sustavu na M6800.
  Korak 7. može se automatizirati, a sam eGPU sustav možemo nakon toga priključivati bez korištenja sleep metode ili pauziranja boot procesa, klasičan Hot-Plug kao na E5430. Novija varijanta EXP GDC adaptera ima ugrađen napredniji mehanizam odgode paljenja, koja nam omogućuje "preskakanje" POSTa i izbjegavanje BSOD-a kojem je uzrok priključen eGPU sustav prilikom paljenja.

High-end eGPU - treći dio

Testovi Iako smo i prije samog testiranja bili svjesni da će PCIe x1 sabirnica biti usko grlo za grafičku karticu poput GTX 980 i da trikovi poput korištenja Optimus tehnologije neće pretjerano pomoći, željeli smo vidjeti točne rezultate. GTX 760 testirali smo iz razloga kako bismo što preciznije mogli vidjeti kako se eGPU sustav ponaša kad procesor nije usko grlo, odnosno maksimum koji eGPU može pružiti u nekim sintetičkim testovima. U rezultatima ćemo koristiti oznaku "x1.2 opt" koja predstavlja x1 - PCIe x1 konekciju, .2 - Express Card ili mPCIe druge generacije te opt što predstavlja korištenje Optimus tehnologije. Isto tako razlikovat ćemo korištenje eGPU sustava na internom i eksternom monitoru.   3D Mark 06 [ichart headers="ID, Score" title="3DMark 06" htitle="Score" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="34136,29074,11787,15963,9969,13442,0,24197" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] 3D Mark 06 je zanimljiv iz razloga što se radi o Directx 9.0 testu koji pokazuje koliku razliku u starijim igrama Optimus može donijeti. Usporedni su testovi isključivo na M6800, a E5430 se u samoj tablici nalazi kao referenca. Zanimljivo je kako je GTX 980 dobila manje bodova na internom ekranu od GTX 760. U Directx 9 igrama potreba za komunikacijom preko PCIe sabirnice puno je veća i GTX 980 koja je u stanju puno više podataka progurat i još više zakrčiti promet ovdje ima i mnogo veće gubitke.   3D Mark 11 [ichart headers="ID, Score" title="3DMark 11" htitle="Score" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="13964,7745,7218,6736,7451,5938,5728,5676" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] Ovdje počinje prava zabava i tek tu vidimo u biti koliko stvarno eGPU donosi kada se upari s adekvatnim procesorom. GTX 760 dolazi do izražaja i postižemo svega 5% niži GPU score ako usporedimo s dostupnim recenzijama na internetu. Što se tiče GTX 980 radi se o gubitku od 15-20% na eksternom ekranu, dok na internom je ta brojka bliža 55% - 60%. 3d Mark FireStrike [ichart headers="ID, Score" title="3DMark FireStrike" htitle="Score" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="11531,5708,5259,4989,4910,4568,4415,3230" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] Iznenađujuće mala razlika u rezultatima za GTX 980 u usporedbi s rezultatima dobivenim u nedavnoj recenziji na PCEkspertu, gdje se radi o nekakvih 5%. Ono što je nVidia u nekoliko navrata spomenula je činjenica da oni pokušavaju iz godine u godinu smanjiti potrebu ovisnosti za velikom propusnošću što im uz pomoć Optimus tehnologije i polazi za rukom. Heaven 3.0 [ichart headers="ID, FPS" title="Heaven 3.0" htitle="FPS" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="1603,898,795,843,989,594,0,525" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] Rezultati u skladu s 3D Mark 11 testovima, gubici su nekih 15-20% na eksternom i drastični na internom.   Tomb Raider [ichart headers="ID, FPS" title="Tomb Radier" htitle="FPS" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="60.3,66.4,55.3,62.3,49.4,47.8,60" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] Rezultati dobiveni sa GTX 980 nisu usporedivi s GTX 760 s obzirom da smo za GTX 980 koristili najvišu moguću razinu detalja dostupnih u samoj igri, jednostavno smo odabrali Ultimate preset i uživali. World of Tanks [ichart headers="ID, FPS" title="World of Tanks" htitle="FPS" labels="M6800 - GTX 980 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 760 @ Ext. 1.2,E5430 - GTX 760 @ Ext. 1.2 opt,M6800 - GTX 980 @ Int. 1.2 opt,M6800 - GTX 760 @ Int. 1.2 opt,E5430 - GTX 760 @ Int. 1.2 opt,M6800 - dGPU M6100" values="60,48,44,39,55,39,60,37" colors="purple,lightblue,yellow,blue,pink,green,red,blue" height="300"] Rezultati su potpuno očekivani - bolji framerate na M6800 čak i s GTX 760 s obzirom da ta igra drastično ovisi o jednojezgrenim performansama. Ovdje smo ponovno za GTX 980 koristili maksimalne grafičke postavke koje igra dozvoljava, za razliku od testiranja GTX 760 gdje su korištene postavke bile jednu stepenicu niže.

High-end eGPU - četvrti dio

egpu_gtx980_6

O cijeloj vožnji S obzirom da se radi o rješenju koje je nastalo bez podrške velikih igrača u IT industriji, gdje je glavni alat razvijen od samih korisnika, a dobar dio svake implementacije temelji se na otkrivanju koja će kombinacija postojećih koraka funkcionirati kod vas i dalje smatramo da se eGPU sustava, čak i kad nije Plug n Play - nije potrebno plašiti. Prvi put je sam postupak i za nas bio pomalo zastrašujuć, ali detaljnijim čitanjem i istraživanjem pokazalo se da jednom osposobljen sustav radi stabilno i donosi nam performanse stolnih računala u svijet prijenosnika. Kombiniranje radne stanice i GTX 980 je potpuno neisplativo što se tiče gejmanja, ali M6800 nam se pokazao kao idealna baza za testiranje s obzirom na ugrađeni procesor, a GTX 980 kao odlična kartica za prikazivanje važnosti korištenja Optimus tehnologije i samih ograničenja u vidu x1 PCIe sabirnice. Nadamo se da vas nakon ovakvog štiva nismo preplašili i da ćemo uskoro na forumu vidjeti i vaše eGPU sustave.