Computación GPU II: Donde está la verdad - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Computación GPU II: Donde está la verdad

Hola de nuevo. Soy Simón Sánchez y esta vez te voy a contar sobre Computación GPU II: Donde está la verdad

Después de mi blog la semana pasada sobre la transición a la computación GPU en HPC, me encontré con un par de elementos que arrojan al tema desde una perspectiva algo diferente. Uno fue un artículo escrito por un equipo de investigadores de ciencias de la computación en Georgia Tech titulado «Sobre los límites de la aceleración de la GPU» (felicitaciones a John Shalf de NERSC por traerlo a mi atención). El otro elemento surgió como resultado de una presentación de Intel sobre los méritos relativos de las arquitecturas de CPU y GPU para la computación de rendimiento, titulada «Desmentir el mito de la GPU 100X frente a la CPU». Creo que puedes adivinar a dónde va esto.

Contactando a Georgia Tech primero papel,

Para estos códigos, Vuduc y la compañía encontraron que una GPU solo era equivalente a una o dos CPU Nehalem de cuatro núcleos en términos de rendimiento. Y dado que una sola GPU de gama alta consume casi la misma potencia que dos CPU x86 de gama alta, desde el punto de vista del rendimiento por vatio, la ventaja de la GPU casi desaparece. También cuentan con el hecho de que el costo adicional de transferir datos entre la CPU y la GPU puede restringir aún más la ventaja de FLOPS incorporada que disfruta la GPU. los

En particular, argumentamos que, para una clase moderadamente compleja de cálculos «erráticos», incluso las implementaciones aceleradas de GPGPU bien ajustadas en los sistemas disponibles actualmente proporcionarán un rendimiento que es, aproximadamente, solo comparable al código bien ajustado para sistemas genéricos de CPU multinúcleo, con un impacto energía más o menos comparable.

La tecnología de GPU elegida se basó en los sistemas Tesla C1060 / S1070 y GTX285 de NVIDIA, por lo que

Es de suponer que la investigación de Georgia Tech no se vio obstaculizada por programas comerciales. El apoyo para el trabajo provino de la National Science Foundation, Semiconductor Research Corporation y DARPA. Sin embargo, vale la pena señalar que Intel también se ha incluido como prestamista. Hmmm.

Lo que proporciona un seguimiento interesante a nuestro segundo elemento. En el Simposio Internacional sobre Arquitectura de Computadoras en Saint-Malo, Francia, Intel presentó un papel lo que arroja algo más de desconfianza en el humilde procesador gráfico. Al igual que el investigador de Georgia Tech, la gente de Intel hizo su propio punto de referencia de rendimiento de CPU frente a la GPU, en este caso, emparejando el Intel Core i7 960 con el NVIDIA GTX280. Utilizaron 14 núcleos de procesamiento de rendimiento diferentes y encontraron una velocidad promedio de 2.5 veces a favor de la GPU. La GPU funcionó mejor con el kernel GKJ (detección de colisiones), con una ventaja de rendimiento de 14 veces y peor con los kernels Sort y Solv, donde la CPU en realidad superó a la GPU.

Los amantes de las GPU de NVIDIA han tomado esto como una buena noticia, sin embargo, señalando que la ventaja de rendimiento de 14x es bastante buena, gracias. en un entrada en el blog esta semana, NVIDIAn Andy Keane escribe:

Es un día raro en el mundo de la tecnología cuando una empresa con la que compite se presenta en una conferencia importante y afirma que su tecnología es * solo * hasta 14 veces más rápida que la de ellos. De hecho, en los 26 años que he estado en esta industria, no puedo recordar otra vez que vi a una empresa promover puntos de referencia competitivos en un orden de magnitud más lento.

Obviamente, el valor 14X fue el mejor resultado del kernel para la GPU, no el promedio. El verdadero punto de Intel era que no podían producir aumentos de rendimiento de 100 veces en la GPU, como afirma NVIDIA para algunas aplicaciones. NVIDIA admite libremente que no todos los códigos tendrán un aumento de dos órdenes de magnitud. Sin embargo, Keane enumera diez ejemplos de código del mundo real en los que los usuarios han experimentado un aumento de rendimiento de 100 veces o más en una implementación de CPU. También señala que para estos puntos de referencia de rendimiento, Intel se basó en una GPU de generación anterior, la GTX280, y dudaba de que los probadores optimizaran el código de la GPU correctamente o en absoluto.

Entonces, ¿Qué significa todo esto? Bueno, cuando se trata de guerras de CPU vs GPU, vale la pena saber quién ejecuta los puntos de referencia, no solo en relación con la lealtad del proveedor, sino también con las habilidades de programación, las herramientas de software que usaron, etc. – en cuanto a las generaciones de procesadores. En este sentido, creo que la GPU NVIDIA Fermi debería usarse como una especie de planta baja para todos los futuros benchmarks. En mi opinión, representa la primera GPU que realmente se puede llamar «de propósito general» sin poner los ojos en blanco.

También es importante tener en cuenta el esfuerzo necesario para llevar estos códigos en paralelo a sus respectivas plataformas. Los escépticos señalan rápidamente que la migración de código a una GPU requiere una inversión inicial significativa. Pero en su blog, Keane nos recuerda que el escalado de codificación en CPU multinúcleo ni siquiera es un camino garantizado para mejorar el rendimiento. Como dijo una vez un sabio informático: “Todo hardware apesta; todo el software apesta. Algunos apestan más que otros. «

Recuerda compartir en una historia de tu Instagram para que tus colegas lo vean

??? ? ? ???

Comparte