Dwa razy szybciej
Architektura kości NV40 dość znacznie różni się od rozwiązań stosowanych w układach NV35/ NV38 (GeForce FX 5900/5950). W dotychczasowych procesorach graficznych (patrz: $(LC51642:nVidia kontratakuje)$) nVidii znaleźć można było cztery potoki renderujące (ang. pipeline), a w każdym z nich umieszczono po dwie jednostki mapujące tekstury TMU (Texture Mapping Unit). Oznacza to, że jednocześnie przetwarzane były cztery punkty obrazu, na które można było nałożyć dwie tekstury. Z kolei nowy GeForce FX 6800 Ultra ma aż szesnaście, a GeForce FX 6800 dwanaście jednostek renderujących! Każda z nich wyposażona została w pojedynczy moduł TMU, niemniej jednocześnie przetwarzanych jest cztery razy więcej pikseli i dwa razy więcej tekstur!
To jednak nie jedyne innowacje. Otóż architektura nowych GeForce’ów jest superskalarna, a więc konstruktorzy zwielokrotnili liczbę jednostek wykonawczych. W NV40 zdublowano moduły cieniujące (ang. shader unit) w każdym potoku renderującym. To z kolei sprawia, że w przypadku obliczeń, w których nie uwzględnia się koloru nakładanej tekstury, możliwe jest przeprowadzenie kalkulacji nie dla szesnastu, a dla trzydziestu dwóch punktów obrazu w jednym takcie zegara.
Nie zapomnij o precyzji
Konstruktorzy z nVidii zwiększyli binarną dokładność operacji zmiennoprzecinkowych, z jaką działają moduły Pixel Shader. W układach z serii GeForce 6800 jednostki wykonawcze operują nie jak do tej pory z 24-, lecz z 32-bitową dokładnością. Podniesiono też precyzję odwzorowania jasności kolorów z ośmiobitowej liniowej przestrzeni w modelu RGBA (po osiem bitów na każdy kolor i osiem bitów dla kanału przezroczystości Alpha) do logarytmicznego modelu OpenEXR o 11-bitowej precyzji (dozwolone są wartości od 2-24 do 65 504). Technologia ta, nazwana przez nVidię HPDR (High-Precision Dynamic-Range), umożliwia układowi NV40 wygenerowanie takich scen, jakie znamy z kina, bez straty wydajności. Dotyczy to zwłaszcza obiektów oświetlonych intensywnym światłem słonecznym, rozkładu cieni w ciemnych pomieszczeniach, gdzie przez szczeliny dostaje się światło dzienne, czy realistycznego odwzorowania chmur na niebie.
W NV40 wprowadzono nową metodę wygładzania krawędzi – Rotated-Grid Antialiasing. Polega ona na innym doborze punktów, które posłużą za bazę do obliczeń antyaliasingu. Punkty próbkowania położone są wzajemnie w taki sposób, że tworzą figurę o kształcie diamentu, a nie jak dotychczas w metodzie FSAA 4x – kwadratu. Dzięki temu GeForce 6800 oblicza rozmycie krawędzi na podstawie kolorów sąsiadujących ze sobą powierzchni, a nie tylko linii przedzielającej dwa obszary. Nowa metoda wygładzania krawędzi ma według producenta zapewnić znacznie lepszą jakość wyświetlanego na ekranie monitora obrazu.
Nowe szaty GeForce’a
GeForce 6800 doczekał się kolejnej, trzeciej wersji technologii Intellisample. Składają się na nią dostępne dotychczas jedynie w układach ATI, szesnastokrotne filtrowanie anizotropowe tekstur, znana z poprzedniej generacji GeForce’ów technologia HCT (High-resolution Compression Technology), poprawiająca wydajność kompresji kolorów, tekstur i danych Z-bufora, oraz kolejna wersja techniki UltraShadow – UltraShadow II. Ta ostatnia metoda odpowiedzialna jest za przyśpieszenie generowania cieni, które w takich grach jak Doom III mogą pochłonąć nawet połowę mocy obliczeniowej karty.
Kolejne nowe efekty graficzne i możliwości GeForce’a 6800 związane są z ulepszonym silnikiem graficznym CineFX 3.0, odpowiedzialnym za operacje na wierzchołkach i pikselach – moduły Vertex i Pixel Shader. Nowe jednostki shaderowe zgodne są z funkcjami Vertex i Pixel Shader 3.0 z pakietu DirectX 9.0c. Obsługiwane są także biblioteki graficzne OpenGL 1.5. Podstawową różnicą w stosunku do poprzedniej wersji specyfikacji Vertex i Pixel Shader jest możliwość korzystania z programów o nieskończonej długości, wykonywania pętli, podprogramów i dynamicznego śledzenia rezultatów wykonywanych obliczeń.
Interesująca jest też możliwość przekazywania sobie wyników obliczeń przez jednostki Pixel Shader w specjalnych buforach. Technologia ta, nazwana MRT (Multiple Render Target), pozwala na zapisanie danych dotyczących położenia, koloru i nałożonej na punkt tekstury. Informacje te mogą być następnie wykorzystane np. do nakładania światła i cieni w końcowej fazie renderowania obiektów, bez konieczności sięgania po nie do pamięci karty. Technika ta znana też jest pod nazwą odroczonego cieniowania (ang. deferred shading).
Porównanie układów NV40 i R420 z najszybszymi obecnie modelami procesorów graficznych | ||||||||
nVidia GeForce FX 5900 Ultra | nVidia GeForce FX 5950 Ultra | nVidia GeForce 6800 Ultra | nVidia GeForce 6800 | ATI Radeon 9800 Pro | ATI Radeon 9800XT | ATI Radeon X800 Pro | ATI Radeon X800XT | |
Nazwa kodowa | NV35 | NV38 | NV40 | NV40 | R350 | R360 | R420/R423 | R420/R423 |
Sugerowana cena | 2000 zł | 2350 zł | 549 euro | 349 euro | 1700 zł | 2250 zł | 399 USD | 499 USD |
Technologia wykonania | 0,13 mm | 0,13 mm | 0,13 mm | 0,13 mm | 0,15 mm | 0,15 mm | 0,13 mm low-k | 0,13 mm low-k |
Liczba tranzystorów | 130 mln | 130 mln | 220 mln | 220 mln | 107 mln | 107 mln | 160 mln | 190 mln |
Silnik graficzny | CineFX 2.0 | CineFX 2.0 | CineFX 3.0 | CineFX 3.0 | Smartshader 2.1 | Smartshader 2.1 | Smartshader 2.2 | Smartshader 2.2 |
Liczba potoków renderujących | 4 | 4 | 16 | 12 | 8 | 8 | 12 | 16 |
Liczba TMU/potok | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 |
Generacja DirectX | 9.0+ | 9.0+ | 9.0c+ | 9.0c+ | 9.0 | 9.0 | 9.0+ | 9.0+ |
Vertex Shader | 2.0+ | 2.0+ | 3.0 | 3.0 | 2.0 | 2.0 | 2.0+ | 2.0+ |
Pixel Shader | 2.0+ | 2.0+ | 3.0 | 3.0 | 2.0 | 2.0 | 2.0+ | 2.0+ |
Pamięć | GDDR1 (256-bit) | GDDR1 (256-bit) | GDDR3 (256-bit) | GDDR1 (128-bit) | GDDR1 (256-bit) | GDDR1 (256-bit) | GDDR1/GDDR3 (256-bit) | GDDR3 (256-bit) |
Przepustowość pamięci | 27,2 GB/s | 30,4 GB/s | 35,2 GB/s* | 32,0 GB/s (?) | 21,8 GB/s | 23,4 GB/s | 32,0 GB/s (?) | 38,4 GB/s (?) |
Taktowanie pamięci (efektywne) | 850 MHz | 950 MHz | 1100 MHz* | 1000 MHz (?) | 680 MHz | 730 MHz | 1000 MHz (?) | 1200 MHz (?) |
Taktowanie rdzenia | 450 MHz | 475 MHz | 400 MHz* | b.d. | 380 MHz | 412 MHz | 500 MHz (?) | 600 MHz (?) |
Fillrate | 3,6 Gpiksela/s | 3,8 Gpiksela/s | 7,6 Gpiksela/s | 4,8 Gpiksela/s | 3,04 Gpiksela/s | 3,3 Gpiksela/s | 7,0 Gpiksela/s | b.d. |
Złącze | AGP 8x | AGP 8x | AGP 8x/PCI Express 16x | AGP 8x/PCI Express 16x | AGP 8x | AGP 8x | AGP 8x/PCI Express 16x | AGP 8x/PCI Express 16x |
Wydajność** | ||||||||
3DMark03/FarCry (1600×1200 4xAA/8xAF) | 6198/15 fps | 6218/17 fps | 14860/33 fps | b.d./b.d. | 584/18 fps | 6235/21 fps | b.d./b.d. | b.d./b.d. |
* – pierwsze modele kart referencyjnych nVidii; ** – na podstawie danych producenta i uśrednionych wyników testów z Internetu; b.d. – brak danych; (?) – przypuszczalne dane techniczne dla seryjnych wersji układów graficznych | ||||||||