Cursos

Básico:

Arquitectura interna de las GPGPU, selección del hardware en función a los requerimientos de la aplicación (compute capability). Instalación de placas, motherboard, conectores de expansión, fuente de poder, disipación de calor, sistemas prearmados. Utilización de placas preexistentes para GPGPU Computing. Instalación de drivers, configuración y puesta a punto del sistema operativo, compatibilidad entre las versiones de drivers, la placa y el SDK. Instalación del SDK, monitoreo de placas, compilación y prueba de los ejemplos. Ejemplos iniciales de programas que realizan mapeos y reducciones (SAXPY y suma de arreglo). Mediciones de tiempos y comparación con algoritmos CPU tradicionales. Medición de potencia de cálculo (GFlops) y ancho de banda de memoria (GBps). Makefile genérico para aplicaciones GPGPU. Modelo SIMT: mapeo de hilos a datos, división en bloques y grillas, creación y destrucción de hilos (fork, join). Operaciones para el manejo de la concurrencia: ejemplos de race-conditions, operaciones atómicas, barreras intra-bloque, memoria compartida intra-bloque, como evitar condiciones de carrera utilizando disyunción en los datos. Warp-voting functions. Ejemplos. Flujo del procesamiento: comunicación GPU-CPU, movimientos de memoria.

Avanzado:

Una mirada fina al modelo SIMT: warps, divergencia intra-warp, coalescing del acceso a la memoria, conflicto de bancos para memoria compartida intra-bloque. Balance entre computación y comunicación. Trade-offs entre número de hilos, cantidad de registros y uso de memoria compartida. Ocupación de la GPU. Limitaciones de la arquitectura en cuanto a registros, número de hilos por bloque, constantes, memoria compartida intra-bloque. Accesos a memoria para lograr el ancho de banda pico. Estructuras de arreglos (SOA) vs. arreglos de estructuras (AOS). Ejemplos y mediciones (paso dinámica RK, suma en paralelo). Optimización del memory footprint de la aplicación para lograr mejor utilización del ancho de banda. Como evitar la divergencia de warps transformando condicionales en expresiones. Movimientos de memoria CPU-GPU de alta performance, memoria pinned, paralelismo entre computación y transferencias de memoria. Uso de profiling para detección de problemas de performance. Programación defensiva (seguridad activa y pasiva) para prevención y detección temprana de bugs. Debugging. Diferencias de optimización respecto a las diferentes arquitecturas de GPGPU.

Aplicaciones:

Códigos de actualización de grilla por stencil. Orden rojo-negro. Ejemplo: la ecuación del calor. Estrategias básicas de optimización. Bibliotecas BLAS y FFT: utilización de las bibliotecas BLAS y FFT para GPGPU, ajustes, casos de ejemplo. Problemas de N-cuerpos: uso y adaptación de los códigos del SDK, aplicaciones que se mapean a problemas de n-cuerpos, programas GPGPU-enabled para dinámica molecular (HOOMD-Blue, LAMMPS). Simulaciones Monte Carlo (MC): generación de números aleatorios independientes de buena calidad. Relaciones de compromiso entre memoria, calidad e independencia entre los generadores. Ejemplos: modelo de Ising, modelo de Potts. Métodos de Elementos Finitos (FEM). Programas GPGPU-enabled. Ecuaciones diferenciales parciales (PDE). Discretización en tiempo y en espacio. Grillas fijas y adaptativas, métodos Runge-Kutta para evolución temporal. Métodos de precisión mixta, trade-offs entre precisión y velocidad.

Auspiciantes

Motorola Solutions
Motorola Mobility

Noticias

  • 18 de Julio de 2011

    Resultados de las encuestas.

    27 de Mayo de 2011

    Mas material publicado.

    26 de Mayo de 2011

    Charlas de la Academia e Industria publicadas.

    25 de Mayo de 2011

    Soluciones a los ejercicios de Básico y Avanzado.

    25 de Mayo de 2011

    Actualización de calendario. Viernes luego del cierre empanadas y vino.

    22 de Mayo de 2011

    Empezamos a subir el material del curso.

    19 de Mayo de 2011

    Motorola Solutions y Motorola Mobility son sponsors de la Escuela.

    18 de Mayo de 2011

    Mapa para caminar de CCT CONICET a FaMAF. Actualización del programa.

    12 de Mayo de 2011

    Software necesario en Notebooks personales. Actualización del programa.

    30 de Abril de 2011

    Actualización del programa.

    13 de Abril de 2011

    Se enviaron los correos con la comunicación de las aceptaciones.

    13 de Abril de 2011

    Estamos en CUDA Week in Review.

    8 de Abril de 2011

    La notificación de aceptación fue pospuesta para el miércoles 13 de Abril.

    1 de Abril de 2011

    Cerraron las inscripciones, hay 100 postulantes.

    30 de Marzo de 2011

    Superamos los 90 inscriptos. Mañana cierran las inscripciones.

    23 de Marzo de 2011

    El CUDA Fellow Ross Walker, será docente de la Escuela y mostrá AMBER MD como parte del Curso de Aplicaciones.

    14 de Marzo de 2011

    Hay más de 40 inscriptos.

    10 de Marzo de 2011

    Están funcionando las C2070 donadas por NVIDIA.

    1 de Marzo de 2011

    Inscripción

    Se ecuentra abierta la inscripción a la Escuela.