Towards efficient exploitation of GPUsa methodology for mapping index-digit algorithms

  1. Lobeiras Blanco, Jacobo
Dirixida por:
  1. Margarita Amor Director
  2. Ramón Doallo Director

Universidade de defensa: Universidade da Coruña

Fecha de defensa: 03 de outubro de 2014

Tribunal:
  1. Francisco Fernández Rivera Presidente
  2. María J. Martín Secretario/a
  3. Adriana Dapena Vogal
  4. Manuel Ujaldón Martínez Vogal
  5. Federico Silla Jiménez Vogal

Tipo: Tese

Teseo: 371633 DIALNET lock_openRUC editor

Resumo

La computación de propósito general en GPUs supuso un gran paso, llevando la computación de alto rendimiento a los equipos domésticos. Lenguajes de programación de alto nivel como OpenCL y CUDA redujeron en gran medida la complejidad de programación. Sin embargo, para poder explotar totalmente el poder computacional de las GPUs, se requieren algoritmos paralelos especializados. La complejidad en la jerarquía de memoria y su arquitectura masivamente paralela hace que la programación de GPUs sea una tarea compleja incluso para programadores experimentados. Debido a la novedad, las librerías de propósito general son escasas y las versiones paralelas de los algoritmos no siempre están disponibles. En lugar de centrarnos en la paralelización de algoritmos concretos, en esta tesis proponemos una metodología general aplicable a la mayoría de los problemas de tipo divide y vencerás con una estructura de mariposa que puedan formularse a través de la representación Indice-Dígito. En primer lugar, se analizan los diferentes factores que afectan al rendimiento de la arquitectura de las GPUs. A continuación, estudiamos varias técnicas de optimización y diseñamos una serie de bloques constructivos modulares y reutilizables, que se emplean para crear los diferentes algoritmos. Por último, estudiamos el equilibrio óptimo de los recursos, y usando vectores de mapeo y operadores algebraicos ajustamos los algoritmos para las configuraciones deseadas. A pesar del enfoque centrado en la exibilidad y la facilidad de programación, las implementaciones resultantes ofrecen un rendimiento muy competitivo, que llega a superar conocidas librerías recientes.