Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Procesamiento en GPU : Una introduccion al procesamiento paralelo

Procesamiento en GPU : Una introduccion al procesamiento paralelo

Flisol 2017 - UPN

Abraham Zamudio

April 22, 2017
Tweet

More Decks by Abraham Zamudio

Other Decks in Research

Transcript

  1. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Sabado 22 de Abril del 2017
  2. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Tabla de Contenidos 1 Introduccion 2 Procesamiento Paralelo en CUDA 3 El modelo de Hardware de CUDA 4 APLICACIONES DE C´ ALCULO EN LA GPU
  3. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Mundo de las GPU La GPU o Unidad de Procesamiento de Gr´ aficos es un coprocesador dedicado al procesamiento de gr´ aficos, que sirve para aligerar la carga de trabajo del procesador en el procesamiento de los gr´ aficos a mostrar en pantalla.
  4. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Mundo de las GPU
  5. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Mundo de las GPU • geforce : Son tarjetas de video convencionales orientadas a juegos . Los controladores tienen optimizaciones para juegos espec´ ıficos. • quadro : Son tarjetas gr´ aficas y drivers optimizados para aplicaciones tipo CAD y modelado 3D • tegra : Es un procesador m´ ovil con 256 n´ ucleos de procesamiento gr´ afico NVIDIA Maxwell, una CPU de 64 bits, una capacidad de reproducci´ on de v´ ıdeo 4K insuperable y m´ as rendimiento y eficiencia energ´ etica que su predecesor convierten al X1 en el procesador perfecto para ejecutar las aplicaciones m´ as sofisticadas en el m´ ovil. • tesla :Solo para computo (No poseen salida de video) Las operaciones de coma flotante por segundo son una medida del rendimiento de una computadora, especialmente en c´ alculos cient´ ıficos que requieren un gran uso de operaciones de coma flotante. Es m´ as conocido su acr´ onimo, FLOPS (del ingl´ es floating point operations per second). FLOPS, al ser un acr´ onimo, no debe nombrarse en singular como FLOP, ya que la S final alude a second (o segundo) y no al plural. giga-FLOPS (GFLOPS, 109 FLOPS)
  6. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Mundo de las GPU 8 Modelos de GPUS : Marzo del 2010 - Junio del 2016
  7. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Mundo de las GPU • Dise˜ nada para jugar • El precio es prioritario • Poca memoria de video (1-2 GB) • Relojes un poco mas rapidos • Perfecta para desarrollar codigo que luego pueda disfrutar en tesla • Orientada a HPC • Fiabilidad (3 a˜ nos de garantia) • Pensada para ser usada en clusters • Mas memoria de video (6-12 GB) • Ejecucion sin descanzo (24/7)
  8. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Tabla de Contenidos 1 Introduccion 2 Procesamiento Paralelo en CUDA 3 El modelo de Hardware de CUDA 4 APLICACIONES DE C´ ALCULO EN LA GPU
  9. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Procesamiento Paralelo La raz´ on principal para crear y utilizar computaci´ on paralela es que el paralelismo es una de las mejores formas de salvar el problema del cuello de botella que significa la velocidad de un ´ unico procesador. Procesamiento Secuencial (Tradicional) Procesamiento Paralelo
  10. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU QU´ E ES CUDA CUDA es una arquitectura de c´ alculo paralelo de NVIDIA que aprovecha la gran potencia de la GPU (unidad de procesamiento gr´ afico) para proporcionar un incremento extraordinario del rendimiento del sistema. Gracias a millones de GPUs CUDA vendidas hasta la fecha, miles de desarrolladores, cient´ ıficos e investigadores est´ an encontrando innumerables aplicaciones pr´ acticas para esta tecnolog´ ıa en campos como el procesamiento de v´ ıdeo e im´ agenes, la biolog´ ıa y la qu´ ımica computacional, la simulaci´ on de la din´ amica de fluidos, la reconstrucci´ on de im´ agenes de TC, el an´ alisis s´ ısmico o el trazado de rayos, entre otras.
  11. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU PROCESAMIENTO PARALELO CON CUDA Los sistemas inform´ aticos est´ an pasando de realizar el “procesamiento central” en la CPU a realizar Coprocesamiento repartido entre la CPU y la GPU. Para posibilitar este nuevo paradigma computacional, NVIDIA ha inventado la arquitectura de c´ alculo paralelo CUDA
  12. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU PLATAFORMA DE C´ ALCULO PARALELO CUDA La plataforma de c´ alculo paralelo CUDA proporciona unas cuantas extensiones de C y C++ que permiten implementar el paralelismo en el procesamiento de tareas y datos con diferentes niveles de granularidad. El programador puede expresar ese paralelismo mediante diferentes lenguajes de alto nivel como C, C++ y Fortran o mediante est´ andares abiertos como las directivas de OpenACC. En la actualidad, la plataforma CUDA se utiliza en miles de aplicaciones aceleradas en la GPU y en miles de art´ ıculos de investigaci´ on publicados.
  13. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Cuda Zone
  14. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Componentes de CUDA
  15. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU CUDA C • Lenguaje C con algunas extensiones • El programador desarrolla el programa para un solo hilo (thread), y el codigo se instancia de forma automatica sobre miles de hilos • CUDA define • Un modelo de arquitectura : Con varias unidades de procesamiento (core) , agrupadas en multiprocesadores que comparten una misma unidad de control (Ejecucion SIMD). • Un modelo de programacion : Basado en el paralelismo de datos • Un modelo de gestion de memoria • Objetivo : Permitir computacion heterogenea en CPU y GPU.
  16. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Computacion Heterogenea 1/4 Terminologia Figura: HOST Figura: DEVICE
  17. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Computacion Heterogenea 2/4 CUDA ejecuta un programa sobre un dispositivo (GPU) , que actua como coprocesador de un anfitrion o host (CPU)
  18. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Computacion Heterogenea 3/4 El codigo reescrito en CUDA puede ser inferior al 5 % , pero consumir mas del 50 % del tiempo sino migra a la GPU
  19. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Computacion Heterogenea 4/4
  20. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Flujo de Procesamiento • Paso 1 : Copiar los datos de entrada de la memoria de la CPU a la memoria de la GPU. • Paso 2 :Cargar el programa en la GPU y ejecutarlo , ubicando datos en cache para mejorar el rendimiento. • Paso 3 : Transferir los resultados de la memoria de la GPU a la memoria de la CPU
  21. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Un Clasico ejemplo : Hola Mundo 1 int main(void){ 2 printf("Buenas Tardes FLISOL2017"); 3 return 666; 4 } Para compilar : $ nvcc hello.cu $ ./a.out Buenas Tardes FLISOL2017 $ Es codigo C estandar que se ejecuta en el host. EL compilador nvcc de Nvidia puede utilizarse para compilar programas que no contengan codigo para la GPU.
  22. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Un Clasico ejemplo con codigo para la GPU 1 __global__ void mikernel(void) 2 { } 3 int main(void) 4 { 5 mikernel <<<1,1>>>(); 6 printf("Buenas Tardes FLISOL2017"); 7 return 666; 8 } • la palabra clave de CUDA global indica una funcion que se ejecuta en la GPU y se lanza desde la CPU . Por ejemplo mikernel<<<1,1>>>. • nvcc separa el codigo fuente para la CPU y la GPU.Las funciones que corresponden a la GPU (como mikernel()) son procesadas por el compilador de Nvidia.
  23. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Tabla de Contenidos 1 Introduccion 2 Procesamiento Paralelo en CUDA 3 El modelo de Hardware de CUDA 4 APLICACIONES DE C´ ALCULO EN LA GPU
  24. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Modelos de Hardware
  25. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Arquitecturq CUDA : Conjunto de procesadores SIMD • La GPU consta de N multiprocesa- dores, cada uno dotado de M cores (o procesadores streamming). • Paralelismo masivo aplicado sobre miles de hilos compartiendo datos a diferentes niveles de una jerarquia de memoria
  26. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Arquitecturq CUDA : Jerarquia de Memoria Cada multiprocesador tiene • Su bando de registros. • Memoria Compartida. • UNa cache de constantes y otra de texturas , ambas de solo lectura.
  27. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA CUDA es C con algunas palabras clave m´ as. Un ejemplo preliminar Codigo C standar : 1 void saxpy_secuencial (int n, float a, float *x, float *y) 2 { 3 for (int i = 0; i < n; ++i) 4 y[i] = a*x[i] + y[i]; 5 } 6 // Invocar a la funcion SAXPY secuencial 7 saxpy_secuencial (n, 2.0, x, y);
  28. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA CUDA es C con algunas palabras clave m´ as. Un ejemplo preliminar C´ odigo CUDA equivalente de ejecuci´ on paralela en GPU: 1 __global__ void saxpy_paralelo (int n, float a, float *x, 2 float *y) 3 { 4 int i = blockIdx.x*blockDim.x + threadIdx.x; 5 if (i < n) y[i] = a*x[i] + y[i]; 6 } 7 // Invocar al kernel SAXPY paralelo con 256 hilos/ bloque 8 int numero_de_bloques = (n + 255) / 256; 9 saxpy_paralelo <<<numero_de_bloques , 256>>>(n, 2.0, x, y);
  29. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA Lista de extensiones sobre el lenguaje C 1/5 • Modificadores para las variables (type qualifiers):global, device, shared, local, constant. __device__ float vector[N]; __global__ void filtro (float *image) {} __shared__ float region[M];
  30. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA Lista de extensiones sobre el lenguaje C 2/5 • Palabras clave (keywords):threadIdx, blockIdx, blockDim, gridDim. int tid = threadIdx.x + blockIdx.x * blockDim.x; int cacheIndex = threadIdx.x; double temp = a[tid]; tid += blockDim.x * gridDim.x; while (tid < count) { if (a[tid] > temp) temp = a[tid]; tid += blockDim.x * gridDim.x; }
  31. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA Lista de extensiones sobre el lenguaje C 3/5 • Funciones intr´ ınsecas (intrinsics): __global__ void globFunction(int *arr, int N) { __shared__ int local_array[THREADS_PER_BLOCK]; //local block memory cache int idx = blockIdx.x* blockDim.x+ threadIdx.x; //...calculate results local_array[threadIdx.x] = results; // synchronize the local threads writing // to the local memory cache __syncthreads(); ... }
  32. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA Lista de extensiones sobre el lenguaje C 4/5 • API en tiempo de ejecuci´ on: Memoria, s´ ımbolos, gesti´ on de la ejecuci´ on. int main(void) { int N = 1000000; float *x, *y, *d_x, *d_y; x = (float*)malloc(N*sizeof(float)); y = (float*)malloc(N*sizeof(float)); cudaMalloc(&d_x, N*sizeof(float)); cudaMalloc(&d_y, N*sizeof(float)); }
  33. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Elementos basicos de la programacion en CUDA Lista de extensiones sobre el lenguaje C 5/5 • Funciones kernel para lanzar c´ odigo a la GPU desde la CPU. // 100 bloques de hilos, 10 hilos por bloque convolucion <<<100, 10>>> (myimage);
  34. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU El Proceso de Compilacion
  35. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Tabla de Contenidos 1 Introduccion 2 Procesamiento Paralelo en CUDA 3 El modelo de Hardware de CUDA 4 APLICACIONES DE C´ ALCULO EN LA GPU
  36. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU APRENDIZAJE AUTOM´ ATICO • Caffe: Framework for convolutional neural network algorithms • cuda-convnet: High performance C++/CUDA implementation of convolutional neural networks • Theano: Python library to define, optimize, and evaluate mathematical expressions • Torch7: Scientific computing framework for machine learning algorithms • cuBLAS: GPU-accelerated version of the complete standard BLAS library • MATLAB: Easy-to-use HPC language integrating computation, visualization, and programming • cxxnet: Neural network toolkit
  37. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU C´ ALCULO FINANCIERO La enorme aceleraci´ on que proporcionan las GPUs aceleradoras NVIDIA TESLA a aplicaciones de c´ alculo tan utilizadas como las simulaciones Montecarlo representa una gran ventaja competitiva para las empresas de servicios financieros. Poder calcular el precio y el riesgo de opciones complejas y derivados OTC en segundos en lugar de horas permite ejecutar m´ as simulaciones y, por tanto, mejorar la calidad y fiabilidad de los resultados.
  38. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU MEC´ ANICA DE FLUIDOS COMPUTACIONAL Diferentes proyectos basados en los modelos de Navier-Stokes y los m´ etodos de Boltzman han experimentado importantes mejoras de rendimiento mediante el uso de GPUs con CUDA. Estos resultados se muestran a continuaci´ on empezando con varios gr´ aficos seguidos de enlaces a informes t´ ecnicos. Existen otros trabajos sobre modelos clim´ aticos y oce´ anicos tambi´ en basados en el uso de la GPU. • OpenCurrent: librer´ ıa de c´ odigo abierto para la soluci´ on de ecuaciones diferenciales parciales en CUDA con mallas regulares • Sailfish: soluci´ on de problemas de din´ amica de fluidos computacional con el m´ etodo de Boltzman en ret´ ıculo • ANDSolver: soluci´ on de ecuaciones de Euler sobre mallas de poliedros no estructuradas • Librer´ ıa de solvers iterativos lineales PCG y BIGSTAB vinculada con OpenFOAM • Matem´ aticas elegantes: m´ etodos de resoluci´ on de Boltzmann, gradiente conjugado, GMRES
  39. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU EL AN´ ALISIS DE DATOS MASIVOS, LA CIENCIA DE LOS DATOS Y EL APRENDIZAJE AUTOM´ ATICO LAS REDES NEURONALES ARTIFICIALES M´ AS GRANDES DEL MUNDO SE CREAN CON GPU
  40. Procesamiento en GPU : Una introduccion al Procesamiento Paralelo Abraham

    Zamudio Chauca Grupo de Modelamiento Matematico y Simulacion Numerica UNI Universidad Privada del Norte Introduccion Procesamiento Paralelo en CUDA El modelo de Hardware de CUDA APLICACIONES DE C´ ALCULO EN LA GPU Las aplicaciones siguen creciendo dia a dia : • Qu´ ımica cu´ antica • Exploraci´ on s´ ısmica • Mec´ anica estructural computacional • Visualizaci´ on e interacci´ on de prote´ ınas • Modelos meteorol´ ogicos y clim´ aticos • Defensa e Inteligencia • Procesamiento de im´ agenes y visi´ on computarizadas