Review Nvidia Familia Geforce 8800

La familia 8800 ya llegó, y antes de deleitarlos a todos, en MaximoPC nos tomamos un tiempo para evaluar cuáles son sus características, examinando su tecnología, como así también todo lo que incluye el nuevo estandar DirectX10.

Tecnología:

La nueva tecnología de NVIDIA que explicaremos hoy se basa en lo que se conoce como "Shaders Unificados", esta tecnología me gustaría aclarar no tiene nada que ver con todo lo que vimos hasta el momento y la forma de comparación sería la misma que ocurrió por ejemplo, desde la aparición del 3D, ya que hasta ese entonces, las placas no podían procesar gráficos 3D, después de que las placas incorporan 3D el famoso T&L, las arquitecturas fueron ganando características, incluso hasta la aparición de Pixel y Vertex Shaders, pero todas, absolutamente todas las arquitecturas compartían el lema de tener cada cosa separada internamente. Con la aparición de la familia 8800 hace su debut la arquitectura de Shaders Unificados y a partir de este momento, estamos en presencia de lo que se conoce como un Procesador de Shaders en paralelo masivo, es tal el grado de avance con respecto a generaciones anteriores que el multiprocesador que es ahora el G80 puede desarrollar cuentas genrales de punto flotante reemplazando por completo al CPU, de ahí nacen nuevas tecnologías que veremos a lo largo de esta explicación.

DirectX10:

Adiós a los Capabilities:

Tanto NVIDIA como ATI ya no podrán tomar mas provecho (especialmente ATI) de enumerar especificaciones ténicas que la competencia no puede hacer, tales como en su tiempo HDR + AA o bien ShaderModel 2 cuando NVIDIA tenía la versión 1.1, etc, o lo que en el lenguaje mundano se traduce como "mi GPU puede hacer esto y el tuyo no". Esto en DirectX10 desaparece, ya que nos encontramos con un entorno virtualizado donde absolutamente todo es posible, verán, bajo DirectX10 todas las placas serán iguales, lo que una porción de Hardware no puede hacer, lo hará el Software, pero el usuario dispondrá de todas las propiedades y capacidades listas para ser usadas, de ahi la interpretación de Caps Bits o Capacidades del Hard, debido a que el entorno se encuentra virtualizado, la memoria principal de la placa de video tampoco será un condicionante. Por ejemplo, cuando una aplicación DirectX10 se activa, el sistema operativo asigna 2Gb disponibles para esa aplicación, si el usuario/programador o juego exige mas que la memoria principal de video para texturas o para Shaders, el DirectX10 se encargará de quitar páginas de memoria de video y pasarlas al sistema e introducir en tiempo real las necesarias, totalmente transparente al usuario, por lo cual, la unica limitación para la ejecución de una aplicación será la performance en última instancia.


ShaderModel 4:

Con la introducción del DirectX10 en el próximo Windows Vista, aparece el Shader Model 4.0, para entender exactamente como funciona vamos a enumerar algunas de sus características.

shadermodel_530

Aquí se pueden ver en detalle las diferencias y características nuevas del ShaderModel 4 que bien pueden resumirse simplemente como DX10.

Las características nuevas que no se encontraban disponibles en anteriores modos son las siguientes:

  • Stage Programable llamado "Geometry Shader" (Shader de Geometrías) permite manipulación de primitivas.
  • Arquitectura de Shaders Unificada usando un código de instrucciones unificado tanto para Pixel como para Vertex y Geometry.
  • Una gran cantidad de recursos disponibles (mas de 100 veces la cantidad de recursos que se disponían en DirectX9)

specs_01_487

Aquí se puede apreciar lo que venimos explicando, la cantidad de recursos que se dispone en DX10 es exorbitante, como consecuencia de esto, ahora es posible realizar Rendering de casi 3 veces la calidad visual que veníamos acostumbrado, con mucho mayor nivel de detalle.

specs_02_467_01

La forma en que el Pipeline de Rendering se encuentra estructurado en el modo Direct3D10 (DX10) le permite al hardware poder interactuar consigo mismo para realizar una inmumerable cantidad de cálculos, tanto de 3D como generales (física) sin ningún tipo de intervención por parte del CPU.

HLSL: (High Level Shader Language)

Otra de las características de la nueva serie 8800 es la utilización, mediante DX10 de HLSL, si bien esta adición se realizó para DirectX9.0c, la implementación en DX10 es mas completa y posee 16 veces la cantidad de "buffers" que antes se disponían bajo DX9

specs_03_388

4096 Buffers constantes le permiten tener 16 veces la cantidad de recursos disponibles para procesar y crear una imagen que lo que se tenía disponible para DX9

Next Generation Instancing:

El instancing es una técnica que permite duplicar mediante el uso de Vertex Shaders una estructura 3D sin incurrir en utilizar toda la arquitectura para re-calcular el mismo objeto, ya que para el Vertex Shader el conjunto de objetos a repetir es tratado como un objeto único, por lo cual, no genera geometría adicional a la escena, la utilización ideal de esta técnica en DirectX9 es la de replicar árboles, rocas u otros pequeños detalles por toda la escena, la unica contra de la técnica es que los objetos no pueden tener distinta forma ni textura y son simplemente "clones" repartidos por toda la escena, en DX10 los objetos "clonados" pueden usar distintos tipos de texturas gracias a la función de "Texture Arrays"

specs_04_508

Per-Pixel Displacement Mapping

Displacement Mapping traduciendo al castellano es una técnica por la cual, mediante un mapa (textura) con distintos tonos de colores, se puede "alterar" la geometría de un objeto. Cuando el objeto original se somete al mapa de "displacement" el Pixel Shader se encarga de adaptar al objeto original a la nueva forma basado en el mapa de colores. Cuando nos referimos a DX9 podemos citar 2 técnicas conocidas, Parallax y Relief Mapping. Parallax no permite la implemtación de relieves donde Relief si, sin embargo, Relief Mapping tiene ciertas limitaciones claras, por ejemplo. Cuando realizamos un Displacement de un objeto, el resultado se encuentra limitado por 2 factores fundamentales, la cantidad de vértices totales del objeto (que se mantendrá igual luego de realizar el Displacement) y el tamaño de pantalla del objeto (screen area), se hace evidente por consiguiente, que los resultados serán menos que satisfactorios, sobre todo cuando intentemos un Displacement de un objeto que carece de suficientes vértices. La limitación del espacio de pantalla del objeto solo le permite mediante DX9 hacer un displacement hacia adentro. Cuando utilizamos DX10 sin embargo, con la ayuda de los Shaders de Geometría dentro del mismo GPU, no es necesario estar limitado a la misma cantidad de vértices de la figura original ni a su tamaño de pantalla, cuando se combinan el Pixel Shader + Geometry Shader el resultado es un objeto que no solo puede "alterar" su tamaño original y trabajar por afuera de su espacio de trabajo sinó también un objeto que puede recibir vértices adicionales acorde a su necesidad, el resultado? vean este pequeño ejemplo en DX10.

specs_05_466

Impresionante, no es asi?

Otros beneficios de DX10:

Existen tantos beneficios y capacidades nuevas que podríamos dedicarles un review completo solo para hablar de ellas, así que me voy a limitar a mencionarles solo algunas.

  • Geometry Shader + Stream Output
  • Displacement Mapping + Tesellation
  • Switch Statement
  • Alpha to Coverage
  • Shadow Map Filtering
Todos estos beneficios son muy teóricos, pero, existe un solo juego que ha demostrado mediante videos, el gran potencial que DirectX10 tiene entre sus manos en el hardware adecuado y este es el Crysis.



Sin duda estamos ante un juego que demostrará que todo esto que vimos en papel es cierto y que muchos de ustedes deben estar esperando con ansias.

Geforce 8800:

La nueva serie 8 de NVIDIA consta en este momento de 2 productos, la Geforce 8800GTS y la Geforce 8800GTX, siendo la GTX la mas alta al momento, veamos paso a paso que tecnologías nuevas incluye NVIDIA en esta familia.

Shaders Unificados:

La arquitectura de Shaders Unificados tiene como condición principal que cada unidad de procesamiento puede desarrollar una función determinada seleccionada con anterioridad y con total facilidad para cambiar su función en cualquier momento dado, así, la arquitectura puede asignar una x cantidad de Shaders para la operación de Pixel Shaders, como de Vertex Shaders o bien para cálculo de física, esto quiere decir que esta es una arquitectura que se auto-balancea acorde a lo necesario y que no incurre en los cuellos de botella que puede tener una arquitectura fija como lo es por ejemplo la X1950XTX o la 7900GTX de la generación pasada.

geforce8800scheme_460

Como pueden apreciar en el gráfico, cada unidad de Shader es completamente independiente y puede funcionar como Pixel Shader, Vertex Shader o bien para cálculos generales que involucren por ejemplo física en un juego, esto liberaría al CPU por completo y mejoraría enormemente el realismo, esto es lo que veremos mas adelante mediante el uso de DirectX10.

geforce8800scheme2_460

Como pueden apreciar aquí, las diferencias entre el diseño discreto que todos los GPU's han llevado a lo largo de los años cambia por primera vez al sistma unificado, las ventajas de este diseño se hacen evidentes y no existen en este caso partes o conjuntos del GPU que creen cuellos de botella al resto, como ocurría hasta el momento, una mala implementación de Pixel Shaders o una escasa cantidad de Vertex Shaders no frenará toda la arquitectura en caso de necesidad, puesto que los Shaders pueden configurarse dinámicamente para ejecutar una o la otra función deseada, cabe aclarar que si bien todos los Shaders (o procesadores) pueden ejecutar cualquiera de las 3 funciones principales, Pixel, Vertex o Geometría, no pueden realizar mas de 1 tarea a la vez, de todas formas, la GTS dispone de 96 de estos Shaders así es que no estamos ante una arquitectura que tenga posibilidades inmediatas de encontrar un cuello de botella.

Muchos transistores:

El nuevo GPU denominado G80 en su serie 8800GTS y 8800GTX dispone de no menos de 681 millones de transistores!, esto es mas que lo que podemos encontrar incluso en un Core2Quad X6800 !!, mas del doble de lo que encontramos en la serie 7900 con sus 278 millones de transistores, lo cual hace de esta arquitectura una de las mas complejas y dificiles de producir, sumandole a esto, la arquitectura sigue fabricandose bajo el estandar de 90nm por lo cual, esperen de seguro, mas calor que en la serie anterior sin embargo, con un consumo increíblemente bajo para la cantidad exorbitante de transistores en no mas de un 8% mas que una X1950XTX lo cual no es demasiado para la bestia que tenemos de GPU.

Diseño DirectX10 Nativo:

Si observamos los gráficos de como funciona DirectX10 veremos también que la arquitectura de NVIDIA se encuentra perfectamente diseñada para DirectX10 ya que su requisito principal es un Shader Unificado, de hecho, NVIDIA nos comenta que la Geforce 8800GTX es considerada en este momento como el sistema base para la certificación de productos compatibles con DirectX10 que se usa actualmente.

Lumenex Engine:

NVIDIA incorpora en estos 2 nuevos productos una serie de mejoras considerables en el sector calidad de imagen, suficientes como para bautizarlas con un nuevo nombre y este es Lumenex, entre las mejoras que se incluyen en esta nueva familia se encuentran las siguientes:

  • Capacidad de utilizar Antialiasing + HDR sin ningun tipo de limitaciones
  • Modos de Antialiasing desde 2x hasta 16x
  • Incorporación del nuevo modo de Antialiasing denominado CSAA (Coverage Sampling Antialiasing)

aacomparison_550

Lo mas interesante de este nuevo modo de Antialiasing y de la tecnología Lumenex es que cualquier modo de Antialiasing de 4x para abajo se provee prácticamente de manera gratuíta, lo que quiere decir que su penalidad es prácticamente nula gracias a la mayor eficiencia de la arquitectura y a su vez, la capacidad de poder implementar hasta 16xAA que antes era imposible en 1 solo GPU.

Consumo de Energía:

Segun NVIDIA, el consumo de energía no debería ser mucho mayor a lo que vimos en generaciones pasadas, sin embargo, existe un incremento, lo importante aquí es desmentir el uso de WaterCoolers para esta generación, como en algun momento se dijo, de hecho, en la mayoría de los casos, el consumo de energía de la Geforce 8800GTX debería ser de un 13% mas que una X1950XTX, considerando el nivel de performance al que este producto apunta, es una excelente medida si lo comparamos a su eficiencia.

power_01_460

En la tabla segun NVIDIA se puede apreciar la performance medida en Performance por Watt donde NVIDIA es muy positivo indicando una mucho mayor eficiencia que la X1900XTX

power_02_460

El incremento como bien dije, no debería ser mayor al 13% en la mayoría de los casos, sin embargo, la performance según el cuadro rozaría casi el doble de lo que puede obtener una sola X1900XTX, me gustaría que tengan paciencia aquí, ya que pronto en MaximoPC comprobaremos si esto es cierto.

Quantum Effects:

quantumeffects_460

La tecnología Quantum Effects no hace mas que describir la capacidad de este GPU de poder utilizar sus Shaders Unificados con el proposito de Cálcular la Geometría y Física de una escena, este tipo de cálculos son los que reemplazarán fácilmente a una solución dedicada de Físicas como lo es la AGEIA PhysX o bien recurrir a la utilización de tecnologías MultiCore, ya que la arquitectura 8800 es por lejos mas eficiente que soluciones de este tipo, al separar ciertas porciones de su GPU para este tipo de cálculos, podemores ver juegos con casi el doble o triple de realismo en la física siempre que los programadores decidan tomar partida de este tipo de recursos y eso lo veremos a partir del DirectX10.

NVIDIA CUDA:

CUDA es la abreviación de Compute Unified Device Architecture, CUDA es una implementación tecnológica por parte de NVIDIA que requiere tanto de soft como de hardware, trabajando en conjunto y que le permiten al programador hacer uso del GPU para funciones de cálculos masivos y paralelos, este tipo de funciones le permiten al GPU poder ser utilizado para cualquier tipo de operaciones matemáticas que involucren procesamiento en paralelo, la cantidad de aplicaciones que podrían verse beneficiadas con todo este potencial escondido en el GPU son tantas que no tendríamos tiempo de enumerarlas a todas.

cuda_01_614

El CUDA permite utilizar lenguaje C para poder comunicarse con el GPU y así utilizarlo en las tareas de cálculo que querramos

cuda_02_460

Ahora, pasemos a ver como lucen las demos que NVIDIA preparó para esta generación que son 2: Froggy y Adrianne.

Froggy:







El realismo es sencillamente excepcional

Adrianne:





Si bien, el realismo es impresionante, no puedo comentarles mucho realmente de como está hecha, ya que NVIDIA no nos especifica con que tipo de estandar fué realizado, ya sea OpenGL o DirectX9 o 10, sin lugar a dudas, esperamos ansiosos a que estas 2 demos se hagan públicas para poder verlas en todo su esplendor.

Geforce 8800GTS y Geforce 8800GTX:

Las dos nuevas integrantes de esta familia 8 se llaman Geforce 8800GTS y GTX, esta es la segunda vez que NVIDIA emplea las siglas GTS, siendo la primera en tiempos de la Geforce2 GTS para los que recuerdan bien, las diferencias entre cada una las pueden ver facilmente en esta tabla.



Ambas placas están basadas en el mismo Chip, G80, la versión GTS dispone de 96 Shaders unificados mientras que la GTX dispone de 128, también podemos ver que que el bus de memoria dispone de 384bits para la GTX y 320 para la GTS y por último, la GTX dispone de 768Mb mientras que la GTS tiene 640Mb, de estas dos cifras se deduce que ambas placas estan utilizando 512Mb de video para texturas mientras que 128Mb son usados para los programas de Shaders en la GTS y 256Mb en la GTX, esta separación de memorias tanto para Shaders como para Texturas le confiere a la arquitectura una mejor performance y mejor manejo de los recursos, ya que los programas de Shaders no se almacenan en el mismo lugar que la memoria principal y de ahi viene el incremento en el ancho de banda del bus.

Conclusión:

No cabe duda que estamos ante el lanzamiento de dos GPU's que marcan por primera vez en muchisimos años un cambio de arquitectura total, nunca se ha visto esto en toda la historia del Hardware y el unico cambio fundamental de este tipo se dio en el momento que las placas 3D aparecieron en el mercado, es así de masivo y con este cambio trae aparejado una enorme cambio en el modo que veremos el 3D a partir de ahora, ahora solo resta investigar la performance que estos productos tienen en las maquinas actuales con DirectX9, ya que para enero falta un trecho y si bien todo suena muy lindo en papel, a la hora de jugar, mas vale que sean efectivas.