jueves, 26 de abril de 2012

Procesadores gráficos para PC

music: DECEMBER MOON -"Winter Sunset"-


Sorpresa inesperada. Ayer terminé de leer el último de los 12 capítulos de este libro, que me encontré por casualidad y del que nada sabía. Más de dos semanas non-stop, casi a capítulo por día, ¡pfiiiuuuu...!. El libro forma parte del material con el que se elabora el Curso Básico de Procesadores Gráficos (GPUs) de la Universidad de Málaga.

Aún siendo un libro de tamaño pequeño posee una información muy condensada. Da mucha más información de lo que parecía con lo que la lectura, al final, no ha resultado tan ligera y amena como esperaba. En algunos puntos se hace verdaderamente cuesta arriba, sobre todo a la hora de ponerse a hablar de parámetros y características a un nivel demasiado electrónico. Cuando empieza con que si el chip tal tiene nosecuántos millones de transistores, con nosecual distancia de integración de nosecuántos nanómetros, trabaja a una frecuencia de nosecuántos MHz y procesa nosecuántos GigaFLOPS... acabas sudando para no perder el hilo.

Esto último, junto con un enfoque más académico / teórico del que me esperaba, y la no suficiente inmersión en el funcionamiento del software de control y programas de apoyo (profiler, benchmark) serían los aspectos negativos que le veo al libro.

Por la parte positiva, destacar:

-Posee una buena explicación introductoria al modo de funcionamiento de la GPU; cuando alguien que proviene de la "Escuela von Newmann" no ha recibido dicha explicación y se enfrenta por primera vez a la programación de shaders, el choque puede ser bastante grande. Comprender que el funcionamiento de una CPU no tiene que ver con el de una GPU (circulación de instrucciones vs circulación de datos) y que un shader no es como tal un programa almacenado en memoria cuyas instrucciones se van ejecutando, sino esencialmente es una configuración de las unidades de procesamiento de la GPU para que trabajen no en su forma por defecto, sino en la que el shader especifica... partimos de una mejor base para comenzar a aprender la programación de shaders. Y dado que un shader representa una configuración y no es una ejecución de sí mismo, no lograremos una ejecución más rápida del shader programándolo directamente en el lenguaje ensamblador de la GPU. Curioso, curioso... : )

-Posee un montón de fotos, cuadros y diagramas explicativos.

-Uno de los capítulos más interesantes ha sido el de refrigeración; para los que estamos un poco pez en cuestiones  más hardware resulta muy instructivo ver cómo va poco a poco desmontando los componentes de refrigeración de la  tarjeta, identificando los distintos elementos de ésta.

-Si estamos interesados en el tema de overclocking deja muy claro, desde el punto de vista de los diferentes elementos de la tarjeta gráfica -memoria de vídeo, GPU,etc.- , cuáles son los parámetros más destacables y lo que podemos esperar al manipularlos (siempre asumiendo que, al hacerlo, acortaremos la vida útil del elemento, esto es,  de la tarjeta gráfica... con lo que si no experimentas mejoría en el rendimiento vuelve a dejarlo como estaba, campeón). :P

-Viene muy bien para repasar el pipeline gráfico, encontrando un modelo unificado de las diversas etapas. También  explica bastante bien la teoría del Tratamiento de la luz y el color, qué es el famoso HDR y los diferentes formatos  HDR existentes (haciendo especial hincapié en el OpenEXR de Industrial Light & Magic).

-Puede ayudar para aclarar conceptos que puedes estar liando. Por ejemplo, diferenciación entre BIOS, driver e interfaz  de driver. Destacar que explicará una forma para activar una ampliación de las features del interfaz de driver de nVidia que nos darán acceso a configuración de opciones avanzadas de la tarjeta (monitorización térmica, funciones  para overclocking).

-Otros temas: Descripción de técnicas SLI y Crossfire para utilizar doble tarjeta , introducción a OpenGL y sus diversos estándares (hasta 2.0), introducción al lenguaje de shading Cg y presentación de un programa ejemplo.

-etc.

Indicaré por último que el autor reserva una parte considerable de espacio para hablar de segmentación, paralelismo, Modelo de Procesamiento "Circulante" (stream) y utilización de GPU como procesador de propósito general, indicando las principales características a tener en cuenta para transformar un "programa von Newmann" en otro Circulante. Ninguna referencia a OpenCL ni a CUDA.

En resumen: un libro que puede ser un buen punto de partida para muchos campos relacionados con el mundo de las GPU, como la computación circulante o la programación de shaders. O simplemente para ponerse un poco más al día en cuestiones hardware y ayudarnos a identificar los diferentes elementos de que consta la tarjeta gráfica de nuestros ordenadores, que algunas tienen un aspecto que intimida y todo. XD

Recomendado según tu interés y nivel de conocimientos en las materias señaladas. Dejo por aquí una completa encuesta de valoración que realizaron los alumnos en septiembre de 2005.

Hasta otra. :P

P.D.: Dado que fue publicado en septiembre de 2005 resulta muy gracioso comprobar si al final se terminaron cumpliendo ó no algunas conjeturas; me temo que no, que al final las tarjetas gráficas no han terminado acoplando ventiladores a ambos lados de la tarjeta (la ATI Radeon HD 5870 de mi Mountain tiene tres ventiladores -como otras muchas-, pero todos toditos por el mismo lado). :P