Uso eficiente de GPUs en procesos altamente paralelizables

Trasfondo

Hoy en día vivimos en un mundo donde las aplicaciones de la ciencia y tecnología se benefician significativamente del cómputo acelerado por arquitecturas paralelas. En particular, las GPUs han provocado un gran impacto en áreas como IA, simulaciones científicas y videojuegos, entre muchas otras, ya que al disminuir el tiempo de cálculo, se abren las puertas a que muchas aplicaciones puedan entrar en la categoría de tiempo-real (real-time) o bien que muchas simulaciones puedan ser realizadas en inputs de mayor tamaño, haciendo el resultado científico más significativo, entre otras posibilidades. Si bien han habido muchos logros en el ámbito de GPU Computing, incluyendo nuevos algoritmos y herramientas que facilitan la programación de soluciones de alto rendimiento, la computación en GPU ha entrado en una segunda era (2018+) donde la aceleración lograda por los “GPU cores” regulares es insuficiente para algunas aplicaciones que necesitan funcionar en tiempo real o procesar inputs de un tamaño cada vez mayor, por lo que fue necesario incorporar núcleos especializados como los “Tensor Cores” y “Ray-tracing Cores” y también nuevas tecnologías que modifican el funcionamiento tradicional de la jerarquía de memoria. Los tensor cores fueron incorporados para apoyar el procesamiento de tareas que emplean aprendizaje profundo (Deep Learning), mientras que los Ray-tracing cores fueron incorporados para apoyar la creación de gráficos fotorrealistas en tiempo real. Esta nueva arquitectura trae consigo nuevos desafíos y oportunidades en el ámbito de la investigación. En ambos casos, los núcleos específicos son parte crítica en lograr un alto rendimiento, ya que haber realizado la misma tarea usando GPU cores regulares no hubiera suplido las demandas de tiempo-real en varias aplicaciones.

Oportunidad

Los diversos tipos de núcleos que ahora incorporan las GPUs (GPU Cores, Tensor Cores y Raytracing Cores) traen consigo una importante oportunidad, que es el poder hacer un uso eficiente de estos recursos en situaciones que van más allá de las aplicaciones inicialmente establecidas (Deep Learning y Ray-Tracing). Aprovechar esta oportunidad lleva consigo un gran desafío, el cual es investigar y  encontrar formas de expresar el cálculo de alguna tarea en una forma equivalente que solo utilice la operación ofrecida por los núcleos específicos. En el caso de tensor cores, la unica operacion disponible es el producto de múltiples matrices (Matrix Multiply Accumulate o MMA) en paralelo, y en el caso de los ray-tracing cores, la operación ofrecida es consultar en paralelo que triangulos de una escena son intersectados por un set de rayos determinados por la aplicación. Como se puede ver, las operaciones ofrecidas por los núcleos son bastante específicas y naturales de usar para aplicaciones de Deep Learning y Computación Gráfica. Si se pudiese utilizar estos procesadores para acelerar ciertos patrones de cálculos muy usados en la ciencia y tecnología, se podría obtener los beneficios del alto rendimiento en otras aplicaciones inicialmente no contempladas.

Herramientas

Las técnicas elementales de computación paralela, GPUs y el supercomputador “El Patagón” como también las matemáticas discretas, conforman las herramientas para realizar la investigación de elaborar algoritmos eficientes en GPU y encontrar equivalencias en la forma de expresar ciertos cómputos paralelizables por Tensor Cores Ray-tracing cores.

Objetivo

Desarrollar algoritmos eficientes en GPUs para la aceleración de patrones de cómputo esenciales en las ciencias y la tecnología. Cuando corresponde, aprovechar los tensor cores y raytracing-cores para obtener un mayor rendimiento:

  • Mapeo de threads acelerado por tensor cores para dominios no-ortotópicos.
  • Reducción Aritmética usando tensor cores.
  • Simulación de Autómatas Celulares usando tensor cores.
  • Estudio de la eficiencia energética de las GPUs con y sin tensor/ray-tracing cores.
  • Estudio del rendimiento del algoritmo de Strassen usando tensor cores.
  • Simulación de ecuaciones diferenciales parciales con FDTD y ARD.
  • Optimización por algoritmos genéticos usando GPUs.

Miembros del grupo “Temporal”

  • Cristobal A. Navarro, Académico Instituto de Informática.
  • Roberto Carrasco, Magíster en Informática
  • Juan Chango, Magíster en Informática
  • Felipe Quezada, Estudiante Magíster en Informática
  • Roberto Melita, Estudiante Magíster en Informática
  • Rodrigo Stevenson, Estudiante Magíster en Informática
  • Carlos Schoenfeld, Estudiante Ingeniería Civil en Informática

Más información y enlaces de interés

HPC

| CARRERA |                             | MAGISTER |                             | FACULTAD |                                      | UACh |                             | VALDIVIA |