Blog użytkownika lechu

lechu lechu 01.12.2017, 14:57
Cyfrowy downsizing, FLOPy - o precyzji słów kilka
1236V

Cyfrowy downsizing, FLOPy - o precyzji słów kilka

Do niniejszego tematu zbierałem się już dłuższą chwilę bo ani on lekki ani przyjemny, a też kolejnej wojenki wywoływać nie chciałem, ale faktem jest że przy Prosiaku jakoś przeszło to bez większego echa, a przy okazji Pstryka w zasadzie nikt nie wiedział o co kaman.

Xbox dotarł, żona mnie jeszcze nie ubiła. To tak gwoli wyjaśnienia bo po poprzednim wpisie miałem kilka pytań nt. mojego rzekomego zniknięcia z łam portalu :P

Do niniejszego tematu zbierałem się już dłuższą chwilę bo ani on lekki ani przyjemny, a też kolejnej wojenki wywoływać nie chciałem, ale faktem jest że przy Prosiaku jakoś przeszło to bez większego echa, a przy okazji Pstryka w zasadzie nikt nie wiedział o co kaman. Niemniej jednak ostatnie pyskówki w którymś-tam z kolei temacie sprawiły że zakasałem rękawy, spiąłem poślady i oto jest. Podyskutujmy trochę o tych cholernych FLOPach, bo tak wszyscy i wszędzie wycierają sobie nimi gębę, a jak stanąć z boku i się nad tym chwilę zastanowić to wychodzi na to że mało kto tak właściwie wie co i o czym mówi bądź pisze.

Oczywiście jeżeli gdzieś w tekście wyłapiecie błąd to dajcie znać - zawodowo nie param się programowaniem a moja wiedza głównie bierze się z oczytu jak i dość długich i ciekawych dyskusji przy kawie i papierosie z moim guru - zawodowym programistą z kilkudziesięcioletnim stażem który swoje pierwsze kroki stawiał w czasach assemblera a kiedy to programy komputerowe zapisywane były jeszcze na kartach perforowanych. Do rzeczy.

Pojęcie downsizingu większość zapewne kojarzy z motoryzacji. Bierzemy oto silniczek o względnie niewielkim litrażu, dorzucamy mu turbinę i cieszymy się niezłymi osiągami (i większym niż zwykle zużyciem paliwa, a jak). Dlaczego o tym wspominam? Doczytaj do końca a zrozumiesz moją aluzję.

Czym są FLOPy z grubsza większość z Was zapewne wie - jest to liczba operacji zmiennoprzecinkowych na sekundę która jest miarą mocy obliczeniowej komputera, a konkretnej jego układów takich jak CPU bądź GPU. Dokładnego wzoru przytaczał nie będę (zainteresowani znajdą choćby na Wikipedii), napomknę jedynie że wartość ta uzależniona jest między innymi od taktowania zegara, ilości operacji na cykl czy ilości rdzeni procesora. To co jednak dość istotne jest z punktu widzenia naszych rozważań, a o czym wielu wciąż zapomina (bądź umyślnie pomija nie bardzo wiedząc o co chodzi) to precyzja. Najczęściej spotykane operacje zmiennoprzecinkowe to liczby pojedynczej i podwójnej precyzji które zajmują odpowiednio 32 i 64 bity. W przypadku gier i grafiki komputerowej najczęściej jednak spotykamy się z pojedynczą precyzją czyli instrukcjami 32-bitowymi. Precyzję taką oznacza się jako FP32 i to właśnie w takiej precyzji podawana jest wydajność układów konsol - np. legendarne już 6TF dla XOX. Okazuje się jednak że taka precyzja przy obliczeniach wykonywanych na potrzeby gier czy grafiki jako takiej nie zawsze jest potrzebna. Do wielu zastosowań i obliczeń wystarcza bowiem już precyzja na poziomie 16 bitów, a niektórzy developerzy bez ogródek twierdzą że ciągłe stosowanie pojedynczej precyzji to marnowanie zasobów. Stąd pojawia nam się coś takiego jak FP16, które o dziwo jest dość nową modą. A właściwie nawet nie tyle nową, co powracającą. Były już bowiem w przeszłości układy które robiły dobry użytek z 16-bitowych instrukcji, choćby 3dfx Voodoo3 jeżeli ktoś jeszcze pamięta te karty. Co ciekawe, obsługa takiej połowicznej precyzji, w zależności od układu, nie zawsze odbywa się na tej samej zasadzie. Bardzo ładnie obrazują to jednostki GPU w XOX i PS4Pro. Dla obliczeń pojedynczej precyzji XOX osiąga wspomniane wyżej 6TF, PS4PRo tylko 4,2TF. Ale dla obliczeń połowicznej precyzji PS4Pro osiąga już 8,4TF, a XOX ile? 12TF? Otóż nie, również 6TF. Niemożliwe? A jednak. Ale o co chodzi...? Spokojnie, już tłumaczę :-)

Otóż nie każdy układ wspiera obliczenia dla każdej precyzji. Podwójna precyzja do wielu zastosowań w ogóle nie jest wymagana w związku z czym gro procesorów czy kart graficznych takich obliczeń w ogóle nie obsługuje. Połowiczna precyzja z kolei w sposób naturalny jest obsługiwana, ale architektura układów tworzonych z myślą o obliczeniach realizowanych w pojedynczej precyzji często gęsto nie jest ukierunkowana na obliczenia połowicznej precyzji. To się powoli zmienia. Przykładem może być właśnie PS4Pro, Nintendo Switch czy architektura AMD Vega gdzie zastosowane układy GPU są niejako lepiej przystosowane do takich obliczeń i mówiąc obrazowo zamiast jednego wyniku dla precyzji FP32 mogą w tym samym czasie dać dwa wyniki dla obliczeń w precyzji FP16. Teoretycznie więc, jeżeli cała gra napisana była by przy użyciu tylko i wyłącznie obliczeń połowicznej precyzji, a więc posługując się jedynie 16-bitowymi instrukcjami, mogłoby się okazać że PS4Pro jest mocniejsze i radzi sobie z taką grą lepiej od XOX. Spokojnie, nie bijcie, to tylko teoria. Jak powszechnie wiadomo, ta z praktyką ma nie wiele wspólnego. Abstrahując od tego że XOX to kawał solidnego hardware'u który przy okazji również wprowadza swoje dedykowane rozwiązania (choćby dodatkowe 4GB RAMu których na prawdę trudno nie zauważyć), dodatkowym hamulcowym jest zwykła "czwórka" która podobnie jak Xboxy, tak dobrze sobie nie radzi z instrukcjami 16-bitowymi. Owszem, radzi sobie, ale dokładnie tak samo jak z instrukcjami 32-bitowymi więc tutaj taki "downsizing" na nie wiele się zda. Mało tego, instrukcje 16 i 32 bitowe w obecnych grach stosowane są równolegle. Co to zatem oznacza dla nas - graczy? Przede wszystkim lekki ukłon w stronę Switcha i Prosiaka. Oczywiście wszystko zależy od tego ile i w jakim stopniu przewaga układów napędzających te dwie maszynki zostanie wykorzystana na poziomie silnika gry. Nie liczcie na to że Pstryk rozłoży skrzydła i zatrzyma się pod sufitem, a PS4Pro nadrobi wszystkie braki i stanie do walki z XOX jak równy z równym. Niemniej jednak coś jest na rzeczy i po prostu dobrze jest mieć tego świadomość zanim po raz kolejny bezmyślnie rzuci się mięchem pod adresem jednej czy drugiej konsoli. Na pewno dobry użytek z tego ficzera już teraz robi UE4. Nie dawno w temacie tym głos zabierali również twórcy nowego Wolfa. Być może w temacie coś więcej ruszy się już niebawem. Pierwsze układy AMD Vega pojawiły się na rynku już z końcem wakacji. W przyszłym roku na rynku zadebiutują również nowe karty nVidii oparte o architekturę Volta która również ma robić użytek z obliczeń połowicznej precyzji. W świetle tych "rewelacji", Nintendo Switch wcale nie wydaje się być taki zacofany jak twierdzą liczni hejterzy.

Tagi: FLOP switch wydajność

Oceń notkę
+ +41 -

Oceń profil
+ +98 -
lechu
Ranking: 24 Poziom: 80
PD: 64047
REPUTACJA: 44346