Programación de GPUs con CUDA

Documentos relacionados
Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación

Aceleradores gráficos. Su impacto en el bus del sistema.

Arquitecturas GPU v. 2013

ELEMENTOS HARDWARE DEL ORDENADOR. Tarjeta gráfica


Seminario II: Introducción a la Computación GPU

Hardware Gráfico. Tarjeta gráfica

Montaje y Reparación de Sistemas Microinformáticos

Hardware Gráfico. Tarjeta gráfica. Resolución. Standards de resolución. Profundidad de color (Colour depth)

Tema 12. El Hardware de la Realidad Virtual

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

Universidad Católica Nuestra Señora de la Asunción Facultad de Ciencias y Tecnología Departamento de Ingeniería Electrónica e Informática

Arquitecturas basadas en computación gráfica (GPU)

1. Introducción a la Arquitectura de Computadoras

Leapfrog Geo 3.1. Notas técnicas de la versión

Adaptación de Algoritmos Geométricos al Uso de Hardware Gráfico Programable

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

GPUs. Comparación entre Nvidia y ATI. Raúl Rodríguez del Rosario

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS

Kepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes ( )

Procesamiento de imágenes en GPUs mediante CUDA. I. Introducción. Indice de contenidos

FLAG/C. Una API para computación matricial sobre GPUs. M. Jesús Zafont Alberto Martín Francisco Igual Enrique S. Quintana-Ortí

GPU - Procesadores de vértices

Arquitecturas vectoriales, SIMD y extensiones multimedia

Computación heterogénea y su programación. 1. Introducción a la computación heterogénea. Indice de contenidos [38 diapositivas]

HPC y GPUs. GPGPU y software libre. Emilio J. Padrón González DE UNIVERSIDADE DA CORUNA GAC.UDC.ES

Tema 1. Hardware. Fundamentos de Informática Grado en Ingeniería Mecánica

Escuela Politécnica Ingeniería en Informática

GPUs móviles Daniel Flores Tafur Javier Sanchez Martinez

High Performance Computing y Big Data en AWS. +info: ( HPC y Big Data en AWS 16 Abril, / 14

USO DE PROCESADORES DE TARJETAS GRÁFICAS PARA VALIDACIÓN DE FORTALEZAS DE ALGORITMOS CRIPTOGRÁFICOS

Proyecto Fin de Carrera

Estudio de la Wii U: CPU y GPU. Michael Harry O'Gay García Microprocesadores para comunicaciones ULPGC

Implementación de Algoritmos Numéricos en una Tarjeta Gráfica

Estudio de la Wii U: CPU y GPU

Tarjetas gráficas para acelerar el cómputo complejo


Arquitectura de aceleradores. Carlos Bederián IFEG CONICET GPGPU Computing Group FaMAF UNC

1.1 Definición del problema

Arquitecturas Orientadas a la Realidad Virtual

Tema 2. Arquitecturas orientadas a las RV

Laboratorio de Herramientas Computacionales

Juan Pablo Jaramillo Valencia Planilla de trabajo: Investigación de componentes de PC

Yeray Miranda Betancor Periféricos e interfaces

ACER SKU: DT.B15AL.004 EAN: Principales características:

Arquitecturas y programación de procesadores gráficos. Nicolás Guil Mata Dpto. de Arquitectura de Computadores Universidad de Málaga

================================================================== ÍNDICE ==================================================================

Soluciones para entornos HPC

Contenido GPU (I) Introducción Sombreadores. Operadores. Vértice Píxel Geometría. Textura Raster HDR

DE LA LICITACION SIMPLIFICADA RELATIVA A LA ADQUISICIÓN DE EQUIPO ELECTRONICO PARA RADIOTELEVISION DE VERACRUZ

EL CLUSTER FING: COMPUTACIÓN DE ALTO DESEMPEÑO EN FACULTAD DE INGENIERÍA

RECONOCIMIENTO DE SUS COMPONENTES - LA PC POR DENTRO:

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

Unidad I: Organización del Computador. Ing. Marglorie Colina

LA EVOLUCION DE LAS TARJETAS GRAFICAS EN LOS ORDENADORES.

Autores: Ismael García Fernández Francisco González García

UNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU. Microprocesadores para Comunicaciones. Paloma Monzón Rodríguez M

1. Introducción Unidad de procesamiento gráfico o GPU Arquitectura de la GPU Modelo de memoria... 4

INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS

UNIVERSIDAD DE ALMERÍA ESCUELA SUPERIOR DE INGENIERÍA

TGA - Tarjetas Gráficas y Aceleradores

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1

Lusitania. Pensando en Paralelo. César Gómez Martín

Programación de altas prestaciones utilizando GPUs

Estructura de un Ordenador

Qué es una Tarjetas Madre? El Procesador. Partes de una tarjeta madre. Tarjetas madres

Modelo de aplicaciones CUDA

Introducción. Por último se presentarán las conclusiones y recomendaciones pertinentes.

Dr.-Ing. Paola Vega Castillo

168(W) x 72.87(H) x 25(D) mm Size. Abrazadera de perfil bajo (opción)

Introducción a la computación paralela

MINISTERIO DE EDUCACIÓN PÚBLICA IPEC DE SANTA BÁRBARA MANTENIMIENTO DE EQUIPO DE COMPUTACIÓN. Memoria Principal RAM Memoria de acceso aleatorio

1.87 GHZ QUAD Q9550 G 2.83 GHZ QUAD CPU 2.83GHZ 1.86 GHZ 1.87GHZ 2.80 GHZ 2.80GHZ 1.87 GHZ

Técnicas SuperEscalares en la Paralelización de Bibliotecas de Computación Matricial sobre Procesadores Multinúcleo y GPUs

ElcomSoft Distributed Password Recovery

TARJETA GRÁFICA. Conrado Perea

Universidad de Granada Departamento de Lenguajes y Sistemas Informáticos

TEMA 1.1 INTRODUCCIÓN A LAS ARQUITECTURAS MASIVAMENTE PARALELAS

Extracción paralela de valores propios en matrices Toeplitz simétricas usando hardware gráfico

UNIVERSIDAD DE EXTREMADURA

Memoria de ejemplo para curso de L A TEX avanzado

AMD G-Series: Soluciones para Gaming o aplicaciones con gráficos intensivos (Digital Signage, etc.)

NOTEBOOK S JULIO BPTEL

Nociones básicas de computación paralela

Roadmap Q309. Línea de productos. Client Division July 2009 Solution Provider Roadmap

Departamento de Arquitectura de computadores y electrónica Universidad de Almería. Tesis Doctoral

INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors: 8va. Ed., Prentice Hall, 2009

ESTRUCTURA BÁSICA DE UN ORDENADOR

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Procesadores Gráficos: OpenCL para programadores de CUDA

CAD / BIM, Plotter y PC, trabajo v/s desempeño Cómo encontrar la fórmula adecuada? Francisco Cardet

Ingeniero en Informática

Introducción a la arquitectura del PC. Informática Básica Curso 2010/2011

Universidad Católica Nuestra Señora de la Asunción. Facultad de Ciencias y Tecnología. Ingeniería Informática

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Ingeniería de Computadores

RT.X100 vs. RT.X2 Comparación de rendimiento en edición DV

Transcripción:

Programación de GPUs con CUDA Alvaro Cuno 23/01/2010 1

Agenda GPUs Cuda Cuda + OpenGL 2

GPUs (Graphics Processing Units) 3

Supercomputadores Mapa de los 100 supercomputadores Sudamérica: posiciones 306 y 363 (Brasil). [1700 teraflops 27 teraflops] [US$133M - ] Fuente http://www.top500.org/ 4

Arquitecturas paralelas Sistemas con memoria distribuida o compartida Clusters Cientos de KiloWatts de consumo Alto costo de instalación y mantenimiento Comparado con arquitecturas secuenciales Pocos usuarios (grandes instituciones) Pocas herramientas para desarrollo 5

Alternativas modernas Arquitecturas multi-core/many-core Actualmente 4 cores 128 cores en 12 años Arquitectura Cell (Playstation 3) Xbox 360 (Microsoft) Placas gráficas (GPUs) 6

Computadores con GPUs Tesla Computing System Desktop/GPU 1 GPU, 128 cores 4 GPUs 240 cores c/u 470 GigaFlops 4 TeraFlops SP Precio: US$ 300 Precio: US$ 10 000 7

Computadores con GPUs Tesla Computing System Desktop/GPU 1 GPU, 128 cores 4 GPUs 240 cores c/u 470 GigaFlops 4 TeraFlops SP Precio: US$ 300 Precio: US$ 10 000 Procesamiento paralelo para las masas!!! The 29th most powerful supercomputer is GPU-based technology (170 teraflops) 8

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) 9

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) 1987 2009 10

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) 11

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) 12

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) 2D animation 13

GPUs Evolución producto del insaciable mercado de gráficos 3D de alta calidad (juegos, industria del cine, etc.) Placas gráficas de funcionalidad fija GPUs programables Altamente paralelas Multicores (soporte a múltiples hilos) Altísimo poder de calculo Gran ancho de banda: GPU y su memoria 14

GPU Es un procesador extremamente potente, flexible y de bajo costo Placa de video Nvidia GeForce 8800GT 15

GPU Es un procesador extremamente potente, flexible y de bajo costo Originalmente diseñado para procesamiento gráfico en 3D Rendering of polygons Texturing Shading Placa de video Nvidia GeForce 8800GT 16

GPU: poder de cómputo Intel Core2 Quad 3.0GHz NVidia GeForce 8800 GTX Computation: 96 GFLOPS Computation: 330 GFLOPS Memory bandwidth: 21GB/s Memory bandwidth 86.4GB/s Price: US$ 570* Price: $300* Anual growth: 1.4x 1.7x (fragment shader), 2.3x (vertex shader) * Precios referidos al año 2008 17

GPU: poder de cómputo Fuente: Nvidia CUDA programmer guide 18

GPU: ancho de banda Fuente: Nvidia CUDA programmer guide 19

GPU: flexibilidad GPUs son altamente programables Vertex shader, geometry shader y fragment shader Lenguajes de programación de alto nivel 20

GPU: flexibilidad GPUs son altamente programables Vertex shader, geometry shader y fragment shader Lenguajes de programación de alto nivel GPUs recientes soportan cálculos de alta precisión 32 bits en todo el pipeline Precisión suficiente para la mayoría de aplicaciones 21

GPU: flexibilidad GPUs son altamente programables Vertex shader, geometry shader y fragment shader Lenguajes de programación de alto nivel GPUs recientes soportan cálculos de alta precisión 32 bits en todo el pipeline Precisión suficiente para la mayoría de aplicaciones Tienen muchos núcleos y una arquitectura mas simple que una CPU estándar 22

Por qué son tan potentes? Originalmente diseñados para cálculo matemático y procesamiento paralelo intenso 23

Por qué son tan potentes? Originalmente diseñados para cálculo matemático y procesamiento paralelo intenso Más transistores para procesamiento que para data caching y control de flujo 24

Por qué son tan potentes? Originalmente diseñados para cálculo matemático y procesamiento paralelo intenso Más transistores para procesamiento que para data caching y control de flujo 25

Por qué son tan potentes? Arquitectura simple 26

GPU: procesamiento gráfico 27

GPU: procesamiento gráfico Graphics State GPU Shade Final Pixels (Color, Depth) Rasterize Fragments (pre-pixels) Transform & Light Xformed, Lit Vertices (2D) CPU Vertices (3D) Application Video Memory (Textures) Render-to-texture 28

GPU: procesamiento gráfico Elementos programables Graphics State GPU Shade Final Pixels (Color, Depth) Rasterize Fragments (pre-pixels) Transform & Light Xformed, Lit Vertices (2D) CPU Vertices (3D) Application Video Memory (Textures) Render-to-texture 29

Aplicaciones recientes 30

Aplicaciones recientes 31

Aplicaciones recientes 32

Evolución de las GPUs Pre-GPU Soluciones costosas de S/H (SGI) 1ra Gen NVIDIA TNT2, ATI Rage, 3DFX Voodoo3 rasterization, no transformations 2da Gen NVIDIA GeForce256 and GeForce 2, and the ATIRadeon 7500 (1999-2000) transformation and lighting 3ra Gen NVIDIA GeForce3 and GeForce4, and the ATI Radeon 8500 (2001-2002) Vertex shader, limited instructions number, absence of program flow control, fixed-point numbers 4ta Gen FX series and the ATI Radeon 9700 and 9800 (2003-2006) Vertex and fragment shaders, texture data, floating-point numbers 5ta Gen NVIDIA GeForce 8 series (2007-) Graphics hardware for general-purpose computation 33

Programación de GPUs No es muy simple No se trata de recompilar código tradicional GPUs fueron diseñadas para procesamiento gráfico Modelo de programación inusual Programación dependiente del pipeline gráfico Cg, GLSL Ambiente de programación restringido CTM(AMD), CUDA(NVIDIA), OpenCL, etc. 34

Programación de GPUs Arquitecturas de GPUs Ejecutan procesamiento paralelo Evolución constante Secreto del fabricante 35

Características de las GPUs Modelos de acceso a memoria Intensidad aritmética Transferencia de datos Operaciones típicas 36

Características de las GPUs Modelos de acceso a memoria Cached, Sequential, Random 30 Then locality, locality, locality Computation must be structured around sequential memory accesses 20 GB/sec 10 Cache Seq. Random GeForce 6800 Cache Seq. Random Pentium 4 (3GHz) Comparación de desempeño de memoria: GPU vs. CPU 37

Características de las GPUs Intensidad aritmética GPU fragment processor = 60 Gflops Pentium4 = 12 Gflops More computation!... how much? To cover memory latency our programs need to contain enough arithmetic instructions AI = arithmetic_op/memory_op Write algorithms with high AI! 38

Características de las GPUs Transferencia de datos entre la CPU y GPU PCI: 3.2 GB/sec Vector addition: A+B = C How to avoid this penalty? Amortize the data transfer cost 39

Características de las GPUs Operaciones típicas Map Reduce M = km, simple to implement on the GPU N to 1, multiple steps Stream filtering Non-uniform reduction, involves removing items Sort/Search Gatter(get) / Scatter(set) 40

Características de las GPUs Algoritmos paralelizables: aceleración > x10 Algoritmos que aplican la misma función a una gran cantidad de datos Algoritmos que requieren cálculos de 32 bits 64 bits es soportado Algoritmos donde el monto de comunicación entre la CPU y la GPU es mínimo No todo algoritmo es paralelizable! 41