Tesla

  • CUDA Y EL GPU COMPUTING
  • APLICACIONES PARA LA GPU
  • GPUs PARA SERVIDORES Y ESTACIONES DE TRABAJO
¿Qué es el GPU Computing?
Divider

El cálculo acelerado en la GPU está
revolucionando la alta computación (HPC)

La aceleración computacional está revolucionando la alta computación (HPC). Ya casi todo el mundo está de acuerdo en que los sistemas con aceleradores proporcionan el mejor rendimiento y la mayor eficiencia energética que pueden encontrarse en el actual mercado de la HPC. La reciente presentación de los superordenadores Summit y Sierra del Departamento de Energía de EE.UU. pone de manifiesto lo importantes que son los aceleradores computacionales para la obtención de sistemas de cálculo a exaescala.

A la hora de evaluar las opciones para adoptar sistemas de cálculo acelerado, nos gustaría aclarar algunos conceptos eliminando algunas falsas promesas generadas por el ruido mediático. En concreto, afirmaciones como que el acelerador Xeon Phi de Intel puede proporcionar un rendimiento aceptable de las aplicaciones en comparación con una GPU simplemente recompilando y ejecutando el código de forma nativa en Xeon Phi, o que la optimización del rendimiento es más sencilla en Xeon Phi que en una GPU sencillamente no se basan en hechos objetivos.

 
 
HECHO: Una GPU es considerablemente más rápida que Xeon Phi de Intel
             en aplicaciones HPC reales.
La obtención de resultados con las principales aplicaciones científicas es dos veces más rápida en la GPU que en Xeon Phi. (actualizado en enero de 2014)
La GPU NVIDIA GPU es hasta 4 veces más rápida que Xeon Phi

El objetivo de la alta computación es conseguir el máximo rendimiento de las aplicaciones, y las GPUs han demostrado proporcionar más rendimiento que las CPUs. Con aplicaciones científicas de diferente carga computacional, como las del gráfico anterior, las GPUs proporcionan entre 2,5 y 7 veces más velocidad que las CPUs. Aunque el coprocesador Xeon Phi de Intel puede optimizarse para superar la velocidad de una CPU, la GPU sigue siendo entre 2 y 5 veces más rápida que el más potente de estos coprocesadores.

Organización Aplicación de cálculo Aceleración de la GPU comparada
con la de Xeon Phi
Instituto tecnológico de Tokio Difusión en dinámica de fluidos computacional 2,6x
Xcelerit Valoración de swaps referenciados al
LIBOR mediante el método Montecarlo
2,2x - 4x
Georgia Tech Radar de apertura sintética 2,1x
CGGVeritas Migración de tiempo inverso 2x
Paralution BLAS & SpMV 2.0x
Univ. of Wisconsin-Madison WRF (pronóstico del tiempo) 1.8x
Universidad de Erlangen-Nuremberg Imágenes médicas - Aumento de la velocidad de reconstrucción de imágenes 3D con 7x
Universidad de Delft Descubrimiento de fármacos 3x
Resultados independientes han demostrado que la GPU multiplica por 2 o más el rendimiento de Xeon Phi. (actualizado en enero de 2014)
En la actualidad, casi 200 aplicaciones de cálculo de una amplia variedad de disciplinas se aceleran en la GPU.
HECHO: “Recompilar y ejecutar” en Xeon Phi en realidad ralentiza la aplicación.
La idea de que los desarrolladores sencillamente pueden “recompilar y ejecutar” las aplicaciones en Xeon Phi de Intel, sin necesidad de cambiar el código de CPU, es atractiva pero engañosa. El rendimiento resultante normalmente es mucho más lento que el de la CPU, exactamente lo opuesto a la aceleración.

Recompilar y ejecutar en Xeon Phi ralentiza el rendimiento de las aplicaciones
La simple recompilación y ejecución en Phi funciona (algunas veces), pero los códigos se ejecutan con mucha más lentitud que en la CPU. Datos del sistema y la configuración2

 
Aunque la simple recompilación para ejecutar el código de forma nativa en Xeon Phi puede funcionar en muchos códigos, hacerlo reduce el rendimiento de la aplicación en comparación con una CPU. Como se puede ver arriba, puede reducirse hasta 5 veces en algunos casos.

Como se explica en el blog “No Free Lunch”, “recompilar y ejecutar” implica una serie de retos técnicos, lo que incluye la ley de Amdahl para las partes serie del código. Debido al escaso rendimiento del código serie en los núcleos de Xeon Phi (basado en un antiguo diseño de Pentium) en comparación con el de los modernos núcleos de CPU, la parte serie de los códigos ejecutados de forma nativa en Xeon Phi puede llegar a ejecutarse un orden de magnitud más despacio.

En la práctica, el desarrollador debe trabajar primero para recompilar el código en Xeon Phi y luego para refactorizar y optimizar el código a fin de incrementar el rendimiento simplemente para conseguir una capacidad similar a la de las CPUs.

Al final requiere cierto esfuerzo obtener el paralelismo, tanto si se quiere acelerar con Xeon Phi como con la GPU. En el mejor de los casos, “recompilar y ejecutar” es un primer paso relativamente conveniente para los desarrolladores. En el peor de los casos, es un atractivo reclamo destinado a provocar el desencanto.
HECHO: Programar para la GPU y para Xeon Phi requiere un esfuerzo similar,
             pero los resultados son significativamente mejores en la GPU.
Mismas técnicas de optimización. Mismo esfuerzo de desarrollo. 2 veces más aceleración en la GPU.
Method GPU Phi
Libraries CUDA Libraries + others Intel MKL + others
Directives OpenACC OpenMP + Phi Directives
Native Programming Models CUDA Vector Intrinsics
Los desarrolladores utilizan librerías, directivas o extensiones del lenguaje para programar aceleradores y optimizar el rendimiento.

La GPU y Xeon Phi de Intel pueden ser diferentes en algunos aspectos, pero se parecen en que ambos son procesadores paralelos. Los desarrolladores necesitan realizar un esfuerzo similar y aplicar técnicas de optimización parecidas para ofrecer cantidades masivas de paralelismo, ya sea en Xeon Phi o en la GPU.

Como se observa en la tabla anterior, utilizan los mismos tres métodos para acelerar su código: librerías, directivas y extensiones del lenguaje como CUDA C para la GPU o Vector intrinsics en el caso de Xeon Phi.

Y los esfuerzos de programación para Xeon Phi y la GPU se aproximan más de lo que la mayoría de la gente piensa

A continuación, un código de kernel de simulación del movimiento de N cuerpos ilustra la similitud de las técnicas de optimización y los esfuerzos necesarios para adaptar ese código a cualquiera de los dos aceleradores. Aunque los cambios en el código son básicamente los mismos, el rendimiento en la GPU supera con creces el de Xeon Phi. Descarga el ejemplo de optimización.
 
La GPU Tesla K20 es 11 veces más rápida que Xeon Phi
Una sencilla comparación de un código de simulación del problema de N cuerpos demuestra que es preciso utilizar técnicas de optimización parecidas, pero que la GPU es considerablemente más rápida. Datos del sistema y la configuración3
 
 
 

Se puede portar el código fácilmente, pero aún falta por hacer en Phi todo lo que se puede hacer en CUDA para vectorizarlo

Dr. Karl Schultz
Director de Aplicaciones científicas en el Centro de Cálculo Avanzado de Tejas (TACC)
Fuente: HPCWire, 17 de mayo de 2013

Nuestro código para la GPU es bastante similar al que tenemos para Xeon Phi , salvo que las operaciones en SIMD se sustituyen por operaciones en SIMT

 

Los resultados obtenidos con el acelerador Xeon Phi de Intel fueron sorprendentemente decepcionantes… Costó bastante crear las soluciones con un buen rendimiento debido a los ajustes de vectorización, a pesar de que dicen que Xeon Phi se programa con facilidad

"Aunque ejecutar un programa en Xeon Phi es sencillo, he observado que, con CUDA y las GPUs NVIDIA, es más fácil conseguir alto rendimiento de forma sostenida para aplicaciones de Boltzmann en retículo."

Dr. Sebastiano Fabio Schifano, Departamento de Matemáticas e Informática - Universidad de Ferrara

El análisis de los hechos permite comprender mejor la realidad del cálculo acelerado. En la actualidad, una GPU proporciona el doble de rendimiento con un esfuerzo de desarrollo esencialmente igual. Las GPUs son la opción lógica para acelerar el código paralelo. En parte, esta podría ser la razón por la que los investigadores han publicado 10 veces más código para GPUs que para Xeon Phi de Intel a lo largo de este año4 y por la que hay 20 veces más usuarios de GPUs NVIDIA que de Xeon Phi en los actuales sistemas HPC.5

 

Notas sobre las configuraciones usadas en las pruebas:
AMBER: prueba SPFP-Cellulose_production_NPT, 1 procesador E5-2697 v2 + Xeon Phi 7120P, 1 E5-2697 v2 a 2,7 GHz + Tesla K40.
MiniMD: modelo KokkosArray- kernel LJ, 864.000 átomos, doble precisión, 2 procesadores Xeon E5-2667 + Xeon Phi 7120, 2 Xeon E5-2667 + Tesla K40.
Generador de números aleatorios Montecarlo (doble precisión): valoración de precios de opciones europeas, 2 procesadores Intel® Xeon® E5-2697 v3 + GPU Tesla K40, resultados del rendimiento de Xeon Phi proporcionados por Intel en su web.
tHogbomClean: 2 procesadores Xeon E5-2697 v2 + Xeon Phi 7120, 2 Xeon E5-2697 v2 + Tesla K40c.
Valoración de opciones con modelo binomial (precisión simple): 2 procesadores Intel® Xeon® E5-2697 v3 + GPU Tesla K40, resultados del rendimiento de Xeon Phi proporcionados por Intel en su web.
NAMD: APOA1, 2 procesadores Xeon E5-2697 v2 + Xeon Phi 7120, 2 Xeon E5-2697 v2 + GPU Tesla K40.
STAC-A2: simulación de riesgos (en caliente), 2 CPUs E5-2699 v3 + Xeon Phi 7120A, 2 Intel Xeon E5-2690 v2 + Tesla K80.

 
 
CUDA y el GPU Computing

Qué es el GPU Computing
Hechos sobre el GPU computing
Programación para la GPU
Arquitectura de GPU Kepler
Computación en la nube con las GPUs
Contacto

Qué es CUDA
Escaparate de aplicaciones CUDA
Formación en CUDA
Centros de Excelencia CUDA
Centros de Investigación de CUDA
Centros de Enseñanza de CUDA

Aplicaciones para la GPU

Aplicaciones para GPUs Tesla
Casos de estudio sobre Tesla
Directivas de OpenACC
Prueba de GPUs Tesla

GPUs Tesla para servidores
y estaciones de trabajo

Por qué elegir Tesla
Soluciones Tesla para servidor
Soluciones Tesla para estaciones
de trabajo

Plataforma de desarrollo integrado
Comprar GPUs Tesla

Noticias e información
sobre Tesla

Documentación sobre los
productos Tesla

Características del software
para Tesla

Herramientas de desarrollo de
software para Tesla

NVIDIA y la investigación
Alertas de Tesla

Síguenos en la red

NVIDIA Blog Blog de NVIDIA
Facebook Facebook
Twitter @NVIDIA_ES
YouTube YouTube