[K] 3060 > 960

Zdarza mi się od czasu do czasu renderować niewielkie sceny w Blenderze. Zdarza mi się renderować filmy na YouTube'a w DaVinci Resolve. Od niedawna także dokonuję transkrypcji odcinków mojego podcastu za pomocą programu Whisper. Rzadziej gram. Co łączy te wszystkie komputerowe aktywności? Możliwość (czy nawet konieczność) korzystania ze zdolności obliczeniowych karty graficznej, zainstalowanej w komputerze.

Dlaczego karta graficzna jest szybsza od procesora?

Tak postawione pytanie jest nieco źle sformułowane. Karta graficzna niekoniecznie JEST szybsza od głównego procesora, co MOŻE być szybsza i to wielokrotnie, sęk w tym, że trzeba ją odpowiednio oprogramować. Swoje pazury procesory graficzne pokazują, jeśli trzeba wykonywać bardzo dużo współbieżnych (równoczesnych) obliczeń na dużych zestawach danych. W takim wariancie karta graficzna potrafi naprawdę zadziwić, i to nie od dzisiaj. Każdy, kto przez ostatnie ćwierć wieku grał w jakąkolwiek grę z grafiką 3D dobrze wie, jaką różnicę wydajności (i jakości obrazu) można zaobserwować, porównując grafikę generowaną za pomocą głównego procesora z generowaną za pomocą wyspecjalizowanej karty graficznej.

Do tego w kartach graficznych montuje się bardzo dużo bardzo szybkiej pamięci do wykorzystania podczas tych wszystkich obliczeń - karta graficzna nie musi się "dzielić" pamięcią z czymkolwiek.

Gry, ale nie tylko

Pierwotnym zastosowaniem dla tej ogromnej mocy przetwarzania było przeliczanie grafiki 3D - w momencie, kiedy gry przestały być "płaskie", a zaczęły dawać możliwość "wejścia w głąb" sceny, np. w Unrealu, Quake'u czy Tomb Riderze, szybko okazało się, że procesory komputerów nie dają rady jednocześnie prowadzić obliczeń związanych z wyświetlaniem grafiki i pozostałymi algorytmami gry. Pojawił się zatem pierwszy "akcelerator" w postaci osobnej karty rozszerzeń Voodoo, potem do walki przystąpiły kolejne firmy, w tym ATI oraz nVidia, dzisiejsi liderzy w tej branży.

Karty robiły się coraz szybsze i coraz bardziej skomplikowane, dostawały nowe funkcje, jak choćby wygładzanie krawędzi, mające pozbyć się brzydkich, pikselowych "ząbków". Cały czas jednak służyły głównie do grania.

W końcu jednak ktoś wpadł na pomysł, że karta graficzna w komputerze, na którym akurat nikt nie gra, po prostu się marnuje. Dość szybko powstał pomysł, by umożliwić skorzystanie z mocy kart graficznych w innych zastosowaniach, np. przy modelowaniu 3D lub renderowaniu filmów wideo, co pochłania bardzo dużo mocy obliczeniowej. Tak powstała technologia CUDA (dla kart GeForce) oraz ROCm (dla kart z procesorami Radeon) - możliwość uruchamiania specjalnych programów, które potrafią zaprząc do pracy "nudzące się" rdzenie, wątki i jednostki obliczeniowe.

Dzięki temu możemy obecnie przyspieszyć (znacząco) pracę różnych programów, których twórcy przewidzieli wsparcie karty graficznej. Osobiście korzystam z aplikacji wymienionych we wstępie i moja dotychczasowa karta GeForce GTX960 z dwoma gigabajtami pamięci, niestety, przestała się sprawdzać. Wymieniłem ją zatem na GeForce RTX3060 z dwunastoma gigabajtami pamięci. Czy zaobserwowałem poprawę?

Liczby

Żeby się przekonać, jaki zysk udało się uzyskać, dokonałem pomiarów "przed" i "po", używając Blendera 3.4, DaVinci Resolve 18.2 oraz Whispera.

Blender 3.4

Użyłem pliku ze stolikiem nocnym oraz stojącymi na nim szklanką, lampą i smartfonem. Szczególnie szklanka powoduje tutaj "problem", to znaczy, właśnie jej renderowanie zabiera znaczną część mocy obliczeniowej.

Czasy renderingu z wykorzystaniem GTX960 wyniosły:

  • 14:21
  • 14:01
  • 14:44

Powiedzmy zatem, że średnio zabierało to 14 i pół minuty. Rendering wykonany z wykorzystaniem RTX3060 dał następujące czasy:

  • 00:37
  • 00:42
  • 00:32

Jak widać, zysk jest szalony: trochę ponad pół minuty zamiast niemal kwadransa!

Dodatkowo można sobie włączyć roboczy podgląd z wykorzystaniem silnika Cycles i daje on radę w prostszych scenach renderować sceny podczas pracy - niesamowite wrażenie.

DaVinci Resolve 18.2

Tak naprawdę właśnie DaVinci stał się przyczynkiem do zmiany. Odkąd w wersji 16 wprowadzono minimalną wielkość pamięci na karcie graficznej ustaloną na 4GB, praca z programem na GTX960 i 2GB pamięci przestała być przyjemna, a korzystanie z modułu Fusion było proszeniem się o kłopoty i często kończyło się po prostu błędem o przepełnieniu pamięci karty graficznej.

Do pomiarów wykorzystałem filmik dotyczący Chapters Creatora, który za pomocą procesora i5 3570K był renderowany w takich czasach (kodek H.264):

  • 10:18
  • 08:38
  • 09:21

Przejście na RTX3060 i włączenie renderowania ze wsparciem karty graficznej dało następujące czasy:

  • 03:07
  • 02:32
  • 02:56

Wyrenderowałem też kilka filmików dłuższych, żeby przekonać się, czy przyspieszenie w tym konkretnym filmiku nie było przypadkowe, wydaje się jednak, że nie: półgodzinny film, renderujący się wcześniej przez około 40 minut, obecnie był gotowy po... jedenastu minutach.

Zysk wydaje się (w porównaniu do osiągniętego w Blenderze) mało spektakularny, ale mamy tu z grubsza przynajmniej trzykrotną poprawę! I co najważniejsze, DaVinci stał się nagle bardzo responsywny, przewijanie timeline'u działa płynnie, Fusion śmiga aż miło.

Whisper

Miałem już gotowe pomiary z połowy grudnia, więc wystarczyło powtórzyć je z wykorzystaniem RTX3060. Muszę jednak wprowadzić pewien "nieporządek", bo karta GTX960, ze względu na skromną ilość pamięci, nie pozwoliła na testy modeli większych niż small (medium wymaga 5GB, large - 10GB). Większe modele musiałem zatem testować, korzystając wyłącznie z procesora i5 3570K:

  • 00:03:54 (base + i5 3570K)
  • 00:11:29 (small + i5 3570K)
  • 00:33:34 (medium + i5 3570K)
  • 01:28:23 (large + i5 3570K)

Po przełączeniu się na GTX960:

  • 00:00:58 (base + GTX960)
  • 00:01:56 (small + GTX960)
  • --:--:-- (medium + GTX960)
  • --:--:-- (large + GTX960)

Byłem bardzo ciekaw, jak zmiana karty graficznej wpłynie na osiągi Whispera. Wyszło tak:

  • 00:00:42 (base + RTX3060)
  • 00:01:12 (small + RTX3060)
  • 00:02:31 (medium + RTX3060)
  • 00:03:21 (large + RTX3060)

Przy małych modelach zysk nie był bardzo duży, ale już możliwość skorzystania z modelu large (12GB pamięci!) pokazała procesorowi, gdzie tkwi prawdziwa moc. Prawie dwie godziny kontra trochę ponad trzy minuty. Szok. Do tego stopnia, że powtórzyłem pomiary - procesor uwinął się tym razem w półtorej godziny i ten czas wpisałem powyżej, jednak nadal różnica jest potężna, bo RTX3060 na 6 pomiarów zawsze pokazywał około trzy i pół minuty. Przypomnę, że testy przeprowadzałem na pliku mp3 z 49 odcinka podcastu - odcinek ma niespełna osiem minut.

Z ciekawości zrobiłem też próby na odcinkach dłuższych: 42 minuty zostały obrobione w 17 minut, godzina i kwadrans w 25 minut, zaś dwugodzinna rozmowa z Kają Mikoszewską z odcinka 56. była przetwarzana - uwaga! - przez 36 minut. Nawet wolę nie myśleć, ile tę rozmowę obrabiałby procesor komputera, skoro osiem minut zajęło mu półtorej godziny...

Podsumowanie

Przyznam, że spodziewałem się poprawy i oczekiwałem jej, ale Blender mnie lekko zaszokował, podobnie zresztą Whisper z modelem large. DaVinci także dostał sporego kopa i można powiedzieć, że znów pracuje się w nim z przyjemnością.

A co z grami, zapytacie? Cóż, wypróbowałem RTX3060 póki co np. w Redout Enhanced Edition, gdzie wszystko poustawiałem na Epic, a gra i tak śmiga obłędnie. Oczywiście, żadnych problemów nie ma Unreal III lub Need for Speed: Most Wanted (ten nowszy). To nieco już stare gry, ale w zasadzie w nowe nie gram za bardzo, zatem spragnieni tabelek z FPS-ami muszą obejść się smakiem.

Tak czy owak, przeskok z GTX960 na RTX3060 jest z pewnością zauważalny.

Komentarze