Optimización de algoritmos de desencriptado sobre GPUs con CUDA
Fecha
2012
Autores
Título de la revista
ISSN de la revista
Título del volumen
Editor
Universidad Rey Juan Carlos
Enlace externo
Resumen
En esta memoria se detalla el trabajo realizado para llevar a cabo la optimización
de los algoritmos de desencriptado proporcionados por y para el Centro Nacional de
Inteligencia Español (CNI) sobre GPUs (Graphics Processing Unit) compatibles con
CUDA. Con el fin de cumplir este objetivo, se ha desarrollado un sistema optimizado
combinando el lenguaje C y su correspondiente extensión para GPUs compatibles con
CUDA, OPENMP, la API de POSIX PThread, y todo ello sobre sistemas operativos
GNU/Linux, obteniendo de este modo, el nivel máximo de paralelismo que cada
máquina pueda soportar, es decir, aprovechando al máximo el número de hilos de
ejecución de la CPU tanto de la GPU.
Dicho proyecto partió de un sistema previo ya funcionando y optimizado tanto
sobre CPU como GPU, por lo que las optimizaciones realizadas han consistido en
exprimir aún más dichos algoritmos. El sistema inicial incluía los algoritmos MD5,
SHA-1, RC4 y AES específicos para la desencriptación de las distintas versiones de
Office y PDF, entre otros.
La dificultad para llevar a cabo las optimizaciones del sistema es la parte más
complicada del proyecto, ya que, se intentan aplicar optimizaciones a algoritmos de
propósito general (con fines no gráficos) sobre un hardware específico y optimizado
para algoritmos gráficos. La implementación de nuestro sistema se debe adecuar a las
características de los algoritmos con fines gráficos para poder aprovechar al máximo
todos los recursos de los que se dispone en la GPU. Esto es lo que se conoce como
GPGPU (General-Purpose Computation on Graphics Hardware).
Para concluir, merece la pena mencionar la utilidad de las APIs y técnicas
empleadas para la optimización del sistema, el cual es capaz de distribuir de manera
equilibrada la carga de trabajo entre las distintas GPUs en función de su capacidad de
cómputo (en el caso de que hubiera varias), disminuyendo de este modo, el tiempo de
respuesta para obtener el resultado de la desencriptación.
Descripción
Proyecto Fin de Carrera leído en la Universidad Rey Juan Carlos en el curso académico 2011/2012. Tutor del Proyecto: Marcos García Lorenzo