NVIDIA lleva la informática con GPU al siguiente nivel

Hola de nuevo. Soy Simón Sánchez y en esta ocasión vamos a hablar sobre NVIDIA lleva la informática con GPU al siguiente nivel

GPU Computing 2.0 está sobre nosotros. Hoy, en la Conferencia de Tecnología de GPU de NVIDIA en San José, California, el CEO de la compañía, Jen-Hsun Huang, presentó una arquitectura de procesador de gráficos seriamente renovada que representa el mayor paso adelante para la computación GPU genérica desde la introducción de CUDA en 2006. El objetivo declarado detrás de la nueva arquitectura es doble: aumentar significativamente el rendimiento de procesamiento de la GPU y ampliar la gama de aplicaciones de procesador de gráficos.

La nueva arquitectura, cuyo nombre en código es «Fermi», incorpora una serie de características nuevas destinadas a la informática técnica, incluida la compatibilidad con la memoria del Código de corrección de errores (ECC) y un rendimiento de punto flotante (DP) de doble precisión significativamente mejorado. Estas adiciones eliminan las dos limitaciones principales de las arquitecturas de GPU actuales para el ámbito de la computación de alto rendimiento y posicionan a la nueva GPU como un verdadero acelerador de punto flotante de propósito general. Sumit Gupta, gerente senior de productos del Tesla GPU Computing Group de NVIDIA, calificó la nueva arquitectura como «una característica paso a paso para la computación GPU». Según él, Fermi será la base de todas las ofertas de GPU de NVIDIA (Tesla, GeForce, Quadro, etc.) en el futuro, aunque los primeros productos no saldrán a las calles hasta el próximo año.

Además de ECC y un gran aumento en el rendimiento del punto flotante, Fermi también más que duplica la cantidad de núcleos (de 240 a 512), agrega caché L1 y L2, admite una memoria GDDR5 más rápida y aumenta el rango de memoria a un terabyte . NVIDIA también ha optimizado el hardware para permitir una mayor competencia y el uso de los recursos del chip. En pocas palabras, NVIDIA está haciendo que sus GPU sean mucho más parecidas a una CPU, al tiempo que amplía las capacidades de punto flotante.

El primero es la adición de soporte ECC, un tema que cubrimos a principios de este mes (sin darnos cuenta de que NVIDIA estaba a pocas semanas del anuncio oficial). El ímpetu detrás de ECC para las GPU es el mismo que para las CPU: asegurarse de que la integridad de los datos se mantenga en toda la jerarquía de memoria para que los cambios de bits incorrectos no produzcan resultados incorrectos. Sin este nivel de confiabilidad, la computación con GPU habría quedado relegada a un nicho de juego en la supercomputación.

En Fermi, ECC será compatible con toda la arquitectura. Todas las principales memorias internas están protegidas, incluido el archivo de registro y las nuevas cachés L1 y L2. Para DRAM fuera de chip, ECC se ha insertado en las interfaces del controlador de memoria en la GPU. Esto implicó un importante esfuerzo de ingeniería por parte de NVIDIA, que requirió un rediseño completo de la memoria en chip y la lógica de la interfaz del controlador de memoria. Con estas mejoras, NVIDIA ha logrado el mismo nivel de protección de memoria que una CPU que se ejecuta en un servidor. Gupta dice que ECC, que tiene poca aplicación para gráficos tradicionales, solo estará habilitado para los productos de procesamiento de GPU de la compañía.

Para admitir esta función de corrección de errores, los productos futuros utilizarán la memoria GDDR5, que es la primera especificación de memoria gráfica que incorpora la detección de errores. (NVIDIA utiliza actualmente GDDR3 en sus productos, mientras que AMD ya ha cambiado a GDDR5). El agradable efecto secundario de GDDR5 es que tiene más del doble del ancho de banda de GDDR3, aunque el rendimiento real de los productos dependerá de la interfaz de memoria y la velocidad específicas. de memoria. Para los productos Tesla, sería razonable esperar una duplicación del rendimiento de la memoria.

Mejor aún, dado que Fermi admite direccionamiento de 64 bits, el espacio de memoria ahora es de un terabyte. Si bien todavía no es práctico colocar tanta DRAM en una tarjeta GPU, las capacidades de memoria ciertamente superarán el límite de 4 GB por GPU en los productos Tesla S1070 y C1060 actuales. Para aplicaciones con restricciones de datos, el aumento de la capacidad de memoria reducirá la necesidad de intercambios repetidos de datos entre la CPU y la GPU, ya que muchos de los datos se pueden almacenar localmente en la GPU. Esto debería ayudar a mejorar el rendimiento general para muchas aplicaciones, pero en particular el procesamiento sísmico, las imágenes médicas, la simulación electromagnética 3D y la búsqueda de imágenes.

Agregar caché L1 y L2 es una característica completamente nueva para las GPU. Se han agregado cachés para abordar el problema del acceso irregular a los datos de muchos códigos científicos. Al igual que con los cachés de CPU, los cachés sirven para reducir la latencia de acceso a los datos y aumentar el rendimiento, con el objetivo general de mantener los datos de trabajo lo más cerca posible de la computación. Los códigos que se beneficiarán particularmente del almacenamiento en caché incluyen aplicaciones que utilizan álgebra lineal dispersa y cálculos matriciales dispersos, aplicaciones FEA y trazado de rayos.

En Fermi, la caché L1 se incluye con la memoria compartida, una memoria interna del portapapeles que ya existe en la arquitectura GT200 actual. Pero mientras la memoria compartida está bajo el control de la aplicación, la caché L1 es administrada por el hardware. Fermi proporciona a cada grupo de 32 núcleos (o multiprocesador de transmisión) 64 KB divididos entre el caché L1 y la memoria compartida. Se admiten dos configuraciones: 48 KB de memoria compartida y 16 KB L1 o viceversa. La caché L2 es más simple. Consta de 768 KB compartidos entre todos los núcleos de la GPU.

Otro gran aumento en el rendimiento proviene del soporte bombeado de doble precisión. Gupta afirma que la arquitectura GT200 tiene una relación de rendimiento de 1: 8 entre precisión doble y precisión simple, por lo que los productos Tesla actuales ni siquiera pueden superar los 100 gigaflops de DP pico por GPU. La nueva arquitectura cambia esta relación a 1: 2, que es una disposición más natural (ya que la precisión doble usa el doble de bits que la precisión simple). Dado que NVIDIA también ha duplicado la cantidad total de núcleos, el rendimiento de DP disfrutará de un aumento de 8 veces. Cuando aparezcan los próximos productos Tesla, deberíamos ver un rendimiento máximo de DP de punto flotante entre 500 gigaflops y 1 teraflops por GPU.

Los ingenieros de NVIDIA también han mejorado la precisión del punto flotante. La arquitectura anterior era compatible con IEEE para precisión doble, pero para precisión simple hubo algunos casos angulares en los que no cumplían. Con Fermi, el último IEEE 754-2008 El estándar de coma flotante ahora está implementado, así como una instrucción fusionada de multiplicación y suma (FMA) para ayudar a mantener una mejor precisión. Según Gupta, esto significa que sus nuevas GPU serán más precisas, de punto flotante, incluso que las CPU x86.

El diseño de Fermi agrega una serie de características en competencia para hacer un mejor uso de los recursos de la GPU. Por ejemplo, se ha implementado la programación de doble subproceso para que cada multiprocesador de transmisión de 32 núcleos pueda ejecutar dos conjuntos de subprocesos simultáneamente, similar a la tecnología de subprocesos de Intel para CPU x86.

Además, el programador de subprocesos de hardware (HTS) de la GPU también se ha mejorado para que el cambio de contexto de subprocesos sea diez veces más rápido que antes. Para aprovechar la conmutación más rápida, HTS puede realizar simultáneamente múltiples secciones de trabajo de cómputo (conocido en el lenguaje CUDA como «kernel»).

La nueva característica permite al programador descargar múltiples aplicaciones a la GPU, ya que incluso pequeñas porciones de trabajo se pueden agrupar y transferir a la GPU de forma masiva sin tener que preocuparse por la limpieza y la sobrecarga de enviar cada una por separado. Y dado que HTS se encarga de la paralelización, puede realizar más cálculos en un período de tiempo más corto.

En esta misma línea, se paralelizó la transferencia de datos. Actualmente, un cálculo de GPU puede superponerse a una transferencia de datos CPU-GPU. Fermi proporciona un segundo motor DMA para que se puedan superponer dos transferencias en un cálculo. Por ejemplo, puede leer simultáneamente datos de la CPU para el siguiente cálculo mientras se ejecuta el cálculo actual, y los datos del resultado anterior se vuelven a escribir en la CPU.

Desde la perspectiva del software, se han realizado numerosas mejoras para admitir un entorno de programación más completo. Más importante aún, están ampliando el modelo nativo CUDA C para incluir C ++. Para hacer esto, agregaron soporte de hardware para características como funciones virtuales y manejo de excepciones. Cuando se presenten los primeros productos de Fermi en 2010, es casi seguro que CUDA tendrá capacidad de compilación nativa de C ++.

Si todo esto suena como mucha inteligencia para un solo chip, lo es. NVIDIA dice que la nueva arquitectura utilizará tecnología de proceso de 40 nm y comprenderá 3 mil millones de transistores, que es más que en cualquiera de las próximas CPU Xeon, Opteron, Itanium o Power7. El consumo de energía de los diversos productos de Fermi estará a la par con las ofertas actuales, pero el rendimiento por vatio mejorará significativamente.

El anuncio de una nueva arquitectura de GPU muy por delante de los productos del mundo real es un gran punto de partida para NVIDIA y es otro ejemplo de cómo la computación GPU ha acercado a la empresa al negocio de las CPU. La compañía está particularmente interesada en involucrar a nuevos jugadores, como la gran manufactura gubernamental y la supercomputación, que se mantuvieron al margen durante GPU Computing 1.0. NVIDIA también cree que Fermi aumentará su penetración de la computación GPU en todos los segmentos de HPC: servicios financieros, ciencias biológicas, petróleo y gas, etc.

Lo que están tratando de lograr, dice Gupta, es preparar a los ISV y a los usuarios finales para que puedan comenzar a preparar su software antes que el hardware real. Desde su punto de vista, «esto es parte de nuestra conversión en una empresa de HPC».

No te olvides compartir en tus redes sociales para que tus amigos lo vean

??? ? ? ???

Comparte