Towards efficient exploitation of GPUs : a methodology for mapping index-digit algorithms

Jacobo Lobeiras Blanco · Dialnet (Universidad de la Rioja) · 2014

La computacion de proposito general en GPUs supuso un gran paso, llevando la computacion de alto rendimiento a los equipos domesticos. Lenguajes de programacion de alto nivel como OpenCL y CUDA redujeron en gran medida la complejidad de programacion. Sin embargo, para poder explotar totalmente el poder computacional de las GPUs, se requieren algoritmos paralelos especializados. La complejidad en la jerarquia de memoria y su arquitectura masivamente paralela hace que la programacion de GPUs sea una tarea compleja incluso para programadores experimentados. Debido a la novedad, las librerias de proposito general son escasas y las versiones paralelas de los algoritmos no siempre estan disponibles. En lugar de centrarnos en la paralelizacion de algoritmos concretos, en esta tesis proponemos una metodologia general aplicable a la mayoria de los problemas de tipo divide y venceras con una estructura de mariposa que puedan formularse a traves de la representacion Indice-Digito. En primer lugar, se analizan los diferentes factores que afectan al rendimiento de la arquitectura de las GPUs. A continuacion, estudiamos varias tecnicas de optimizacion y disenamos una serie de bloques constructivos modulares y reutilizables, que se emplean para crear los diferentes algoritmos. Por ultimo, estudiamos el equilibrio optimo 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 programacion, las implementaciones resultantes ofrecen un rendimiento muy competitivo, que llega a superar conocidas librerias recientes.

Read the paper · More papers on PaperTik