Archiwa kategorii: Przemyślenia

Baza laptopów ze złączem NGFF

Użytkownik forum nhl.pl i autor bloga hwfreak.pl – Dooku podjął się zadania stworzenia bazy laptopów ze złączem NGFF/M.2. Jeśli chciałbyś wspomóc akcję to stosując się do niniejszej instrukcji w bardzo prosty i szybki sposób możesz sprawdzić czy Twój laptop posiada złącze NGFF i jaką prędkość obsługuje. Informację prosimy podawać na forum nhl.pl w tym temacie lub bezpośrednio przez stosowny formularz kontaktowy na dole stronie hwfreak.pl.

Przypominam, że złącze NGFF jest alternatywnym dla ExpressCard/mPCIe/Thunderbolt sposobem podłączenia zewnętrznej karty graficznej. Warunkiem koniecznym by z niego skorzystać jest interfejs PCIe zamiast SATA. W zależności od typu złącza PCIe możliwe jest uzyskanie przepustowości od PCI-E 2.0 x2 (1GB/s), aż do PCI-E 3.0 x4 (4GB/s). Więcej informacji znajdziesz w tym poradniku również autorstwa Dooku.

„PCI-Express Scaling” w grach wg TechPowerup

PCI_Express_logo-660x268

Na łamach serwisu techpowerup.com pojawił się właśnie bardzo interesujący artykuł zatytułowany GeForce GTX 980 PCI-Express Scaling, który choć nie dotyczy stricte tematu eGPU, to jednak w istotny sposób przybliża nam jego słabości. Z okazji premiery kart NVDII najnowszej generacji, redakcja postanowiła wziąć na warsztat GTX980 i sprawdzić jak sprawuje się w aktualnie wydanych grach w zależności od zastosowanej szyny PCI-E oraz rozdzielczości.

Niestety, autorzy testu nie „zniżyli” się do naszego poziomu (tzn. przepustowości PCI-E x1 2.0 4Gbps) i swoje testy rozpoczęli od szyny PCI-E x4 1.1 (czyli 8Gbps), a skończyli na PCI-E x16 3.0 (czyli 128Gbps). Nie zmienia to jednak faktu, że skoro dana gra ma już znacznie obniżoną wydajność w przypadku x4 1.1, to na x1 2.0 z pewnością lepiej już nie będzie.

Kto wypadł najgorzej? Na pierwszym miejscu (co nie jest dla mnie zaskoczeniem) Ryse: Son of Rome na silniku CryEngine 4. Jak wyjaśniają autorzy testu, w grze zaobserwowano bardzo dużą wymianę danych pomiędzy GPU a CPU.

Na drugim miejscu (jakżeby inaczej) Wolfenstein: The New Order. Tutaj również nie można mówić o zaskoczeniu, bowiem już w moim amatorskim teście było widać znaczne problemy z szyną na domyślnych ustawieniach.  Autor testu potwierdza zresztą moje ówcześnie postawione wnioski:

Virtual Textures certainly look great in-game, providing highly detailed, non-repeating textures, but they also put a significant load on the PCI-Express bus. One key challenge here is to have texture data ready for display in-time. Sometimes too late, it manifests as the dreaded texture pop-in some users have been reporting.

Średnio wypadły również Battlefield 4 oraz World of Warcraft: Warlords of Draenor.

Optymizmem napawa jedynie fakt, że wydajność uzyskana na PCI-E x16 2.0 oraz PCI-E x8 3.0 była zbliżona do PCI-E x16 3.0, co sugeruje, że branża gier komputerowych nadal nie jest w stanie wykorzystać tak dużej przepustowości. W świetle pojawiających się ostatnio stacji dokujących (Alienware 13) na niepełnej szynie, jest to dobry prognostyk.

Co tak naprawdę „zapycha” szynę w eGPU ?

PCI_Express_logo-660x268

Pytanie na które długo nie byłem sobie w stanie odpowiedzieć. To że skrócona szyna PCI-E do x1 2.0 w niektórych grach ograniczała wartość fps lub powodowała sporadyczne, lecz irytujące spadki wiedziałem od dawna. To że problemem była komunikacja CPU<->GPU przez tę szynę domyśliłem się niedawno. Ale co tak naprawdę powodowało, że szyna oferująca prawie 630MB/s w obie strony zapychała się, dowiedziałem się dopiero dzisiaj przy okazji testów gry Wolfenstein: The New Order opartej na OpenGL i silniku id Tech 5…

Wąskim gardłem jest procesor. A raczej wypełnienie obiektów teksturami przez procesor. Generalnie jest to całkowicie słuszna zmiana optymalizacyjna. Dzisiejsze gry w bardzo małym stopniu wykorzystują wielowątkowość procesora dlatego każda zmiana która odciąża kartę graficzną jest chwalebna. A przecież wypełnianie obiektów teksturami jest na tyle prostą czynnością, że procesor w zupełności powinien sobie z tym poradzić.

W przypadku eGPU optymalizacyjna zmiana „na plus” okazuje się jednak fatalną decyzją. Jeśli bowiem w VRAM mam zaalokowane 1GB tekstur to przesłanie ich do procesora przez skróconą szynę by ten je powstawiał, a potem przesłał efekt końcowy z powrotem do GPU musi spowodować gigantyczne spadki fps. Właśnie to obserwujemy w takich grach jak wspomniany wcześniej Wolfenstein: The New Order, Total War: Rome II, Total War: Shogun II, czy w dość ograniczonym na szczęście stopniu w serii Battlefield oraz Crysis 3.

Uściślając, problem występuje we wszystkich grach w których tekstury są wypełniane dynamicznie (tylko w obrębie pola naszego widzenia) przez CPU. Tam gdzie tekstury wstawiane są „na stałe” podczas „ekranu wczytywania” problem z szyną nie występuje. Do takich gier należy m.in. Natural Selection 2 (występuje tam tkz. „precaching”), seria Half Life (słynny „paseczek” między etapami nawet tej samej mapy) czy Metro: Last Light (również ekrany ładowania między misjami). Ciekawym wyjątkiem jest Wiedźmin 2, w którym tekstury również były nakładane „w tle” (przykładowo wejście do karczmy we Flotsam u mnie często najpierw wyświetlało „plastelinowe” obiekty, a sekundę potem właściwe tekstury). Podejrzewam jednak, że w naszej polskiej superprodukcji końcowym etapem wypełniania teksturami zajmuje się jednak GPU co by potwierdzało znikome użycie CPU.

W Wolfenstein: The New Order zaobserwowałem inne bardzo interesujące zjawisko – nawet na włączonej obsłudze tekstur przez CPU (vt_maxPFF >0) jeśli stanąłem w miejscu, nie poruszyłem myszą ani nie kliknąłem w klawiaturę to w ciągu 2 sekund fps z 10-15 rósł samoistnie do 60. Każda, nawet najmniejsza „zmiana stanu” powodowała drop z powrotem do 10-15fpsów. Wniosek – CPU na nowo musiał przeliczyć i powstawiać tekstury w „nowym polu widzenia”. Na szczęście engine zastosowany w tej grze pozwala przełączyć te operacje z powrotem na GPU co znacznie zwiększy ilość fps kosztem tego, że zapełnianie tychże obiektów teksturami potrwa dłużej (przez co przez ułamek sekundy możemy ujrzeć niewyraźne, „plastikowe” ściany).

Prognoza na przyszłość jest raczej dla eGPU niewesoła. Coraz więcej gier to sandboxy w których głównym zadaniem programistów jest ukryć wszelkie doczytywania lokacji i tekstur „w tle”. jeśli udział CPU w takich operacjach będzie częstszy, a engine gry nie pozwoli na zmianę w pliku konfiguracyjnym, będziemy mieć do czynienia z bardzo dużym ograniczeniem przez szynę w przypadku eGPU.

Czy jestem zadowolony z eGPU ?

Takie pytanie otrzymałem niedawno od jednego z użytkowników forum nhl.pl, pomyślałem więc, że warto odpowiedzieć publicznie. Tak – jestem zadowolony z eGPU które stworzyłem już w zasadzie rok temu, a poniżej wytłumaczenie dlaczego.

Czemu w ogóle zainteresowałem się tematem eGPU ?

Powód jest prosty. Kupiłem „przypadkowo” świetnego laptopa który nazywał się Dell Vostro 3450. Po pewnym czasie trafiłem na dopiero co powstały temat Zewnętrzna karta graficzna, (DIY) ViDock, Magma Box i pochodne, czyli czym to się je i zorientowałem się że jestem szczęściarzem – w moim laptopie było złącze ExpressCard, którego na etapie zakupu laptopa w ogóle nie uwzględniałem. A posiadanie ExpressCard = łatwa i wygodna możliwość podłączenia eGPU.

Jak już napisałem, Dell Vostro 3450 to był świetny, uniwersalny laptop z niższej półki biznesowej. Jedną z jego zalet była dedykowana karta graficzna 6630m która przez długi czas wystarczała do moich potrzeb (przez pewien czas grałem na niej nawet w Battlefield 3 na 30-40fpsach w 720p+low). Nadszedł jednak czas gdy karta przestała wystarczać (pojawił się bardzo zasobożerny Natural Selection 2) i postanowiłem wrócić do pomysłu eGPU.

Ile wówczas wydałem na eGPU ?

Ok. 1000zł. Tyle wyniosło mnie kupno adaptera (początkowo „polskiego wynalazku” jednego z użytkowników nhl.pl; potem „chiński” PE4L 2.1b), karty graficznej GTX560Ti oraz obudowy DIY Box. Zasilacz Fortron i monitor Benq miałem już po byłej stacjonarce.

moje egpu gtx 560ti + 8460p

Z czasem, korzystając z tego że na allegro zaczęły się pojawiać okazyjne cenowo modele HP Elitebooka 8460p, zmieniłem również laptopa a później procesor na 4 rdzeniowy i7. Łącznie wyniosło mnie to kolejne niecałe 1900zł.

Z czego jestem najbardziej zadowolony ?

Najkrócej mówiąc: ze wzrostu wydajności w moich ulubionych grach. W takiego Natural Selection 2, Napoleon: Total War czy XCOM: Enemy Unknown na 6630m nie mogłem zagrać w FullHD i 60fpsach. W Wiedźminie 2 w ogóle była trudność w utrzymaniu 30fpsów na HD – masakra. Po podłączeniu eGPU wzrost wydajności był kolosalny.

Oczywiście – są gry w których szyna ogranicza albo całkowicie niweczy powyższy skok wydajności. Na szczęście, takich gier jest niewiele i nie są to „moje ulubione tytuły” (pomijając nieszczęsnego Total War: Shogun 2). W sumie po to publikuję testy gier na blogu, żeby każdy mógł ocenić czy jego ulubione gry będą na eGPU dobrze działać.

egpu gtx560ti

Prawdziwym sprawdzianem dla mojego eGPU będzie premiera Wiedźmina 3. Jeśli będzie działać choć w 75% tak dobrze jak Wiedźmin 2 to z czystym sumieniem będę mógł powiedzieć że moje eGPU się opłacało.

Jak widzicie – najważniejszym kryterium pójścia w stronę eGPU było więc dla mnie uzyskanie wyższej wydajności jak najniższym kosztem (miałem już laptopa z EC). Kwestia dodatkowej mobilności (eGPU mogę w każdej chwili odłączyć i wziąć laptopa gdzie chcę) była dla mnie drugorzędna choć oczywiście również mile widziana.

Czy zamierzam dalej inwestować w eGPU ?

Chodzi mi po głowie zakup GTX660Ti lub GTX760 gdy ceny staną się w miarę okazyjne, ale na dobrą sprawę obecna GTX560Ti w zupełności mi wystarcza. Zastanawiam się czy nie lepiej zbierać już na laptopa ze złączem Thunderbolt 2… o ile ten pojawi się w końcu w laptopach bez „ogryzka” 🙂

Komu eGPU opłaca się najbardziej ?

Nawiązując do tego co pisałem już w FAQ w temacie pt. „Komu tak naprawdę opłaca się inwestować w eGPU ?”, chciałbym dziś napisać o jeszcze jednej grupie odbiorców, którym inwestycja w eGPU opłaca się bodaj najbardziej.

Konkretnie mam na myśli właścicieli starych laptopów ze złączem ExpressCard. Tak – dobrze przeczytaliście – uważam, że posiadacze Thinkpad-ów Tx10/X201s, Elitebook-ów 8x40p/2540p, Dell Latitude E6x10 (za x wstawić rozmiar-model) jak również niektórych laptopów z segmentu multimedialnego jak np. Lenovo Y460 (kiedyś nawet tam montowano złącze EC) są w świetnej sytuacji. Dlaczego ? Już wyjaśniam.

Każdego z nas prędzej czy później dopada myśl żeby w swoim laptopie coś ulepszyć, poprawić, zmodernizować. „Bo wydajność już nie tak dobra jak kiedyś, bo mam trochę kasy i nie wiem na co ją wydać, bo chcę poeksperymentować” – powodów jest mnóstwo. Więc się zaczyna – od dołożenia kolejnej kości RAM, przez wymianę procesora na lepszy aż po… wymianę karty graficznej. I tu pojawia się zgrzyt, ponieważ w laptopach ta ostatnia operacja jest niezwykle rzadko możliwa – w zasadzie ogranicza się do laptopów gamingowych ze slotem MXM. Efekt jest taki, że 99% użytkowników laptopów postępuje według tej samej ścieżki – co 2 lata wydaje kolejne 3tys zł na kolejny laptop z kolejną dedykowaną kartą graficzną (dGPU) ze średniej półki która starczy na kolejne 2 lata. Ale bohaterowie tego tekstu (czyli posiadacze starych biznesówek) są w lepszej sytuacji… i mogą sporo zaoszczędzić bowiem…

2540p egpu

Tutaj właśnie pojawia się zbawienny ExpressCard i możliwość podłączenia eGPU. Policzmy więc jakim najtańszym kosztem właściciel wymienionych wcześniej starych biznesówek może poprawić wydajność swojego laptopa:

RAZEM: 622zł

Czyli za jedyne 622zł można ulepszyć swojego starego, pewnie 3 lub 4 letniego, poczciwego „staruszka” do wydajności (przynajmniej w testach syntetycznych) dzisiejszych laptopów multimedialnych za 2,5-3tys zł. Oszczędność ? I to jaka…

Ale to nie wszystko – jeśli w przyszłości zdecydujemy się jednak wymienić laptopa na nowszy, wystarczy zakupić coś z serii biznesówek na Sandy Bridge/Ivy Bridge również ze złączem EC i nasze eGPU dalej będzie działać i to z lepszą wydajnością bo na 1.2Opt (adapter PE4L może pracować zarówno na 1.1Opt jak i 1.2Opt). Podwójna oszczędność.