Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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)

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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)

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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.

Slide 27

Slide 27 text

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);

Slide 28

Slide 28 text

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 <<>>(n, 2.0, x, y);

Slide 29

Slide 29 text

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];

Slide 30

Slide 30 text

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; }

Slide 31

Slide 31 text

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(); ... }

Slide 32

Slide 32 text

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)); }

Slide 33

Slide 33 text

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);

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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.

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

MUchas Gracias !!!