Arquitecturas GPU v. 2015

Documentos relacionados
Arquitecturas GPU v. 2013

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

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

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

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

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

Arquitecturas vectoriales, SIMD y extensiones multimedia

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

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

Múltiples GPU (y otras chauchas)

Primeros pasos con CUDA. Clase 1

Tile64 Many-Core. vs. Intel Xeon Multi-Core

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

Programación de GPUs con CUDA

Instituto Tecnológico de Morelia

ELEMENTOS HARDWARE DEL ORDENADOR. Tarjeta gráfica

INFORMATICA III. Capítulo I: Plataformas

Familia de procesadores Intel x86

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

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

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

Modelo de aplicaciones CUDA

Organización del Computador I. Introducción e Historia

FUNCIONAMIENTO DEL ORDENADOR

INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS

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

Introducción a la arquitectura de computadores

Intel XeonPhi Workshop

Introducción a los Sistemas Operativos

FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

Nociones básicas de computación paralela

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators

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

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

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

DESARROLLO DE APLICACIONES EN CUDA

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

Computación Híbrida, Heterogénea y Jerárquica

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Arquitectura de GPUs

INFORMATICA III. Capítulo I: Plataformas

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

PROGRAMACIÓN AVANZADA DE GPUs PARA APLICACIONES CIENTÍFICAS

Threads, SMP y Microkernels. Proceso

CLUSTER FING: ARQUITECTURA Y APLICACIONES

Qué es un programa informático?

Tema 1: Arquitectura de ordenadores, hardware y software

SOPORTE FÍSICO O HARDWARE (I)

Arquitectura de Computadores II

Velocidades Típicas de transferencia en Dispositivos I/O

Montaje y Reparación de Sistemas Microinformáticos

Tema 2.1. Hardware. Arquitectura básica

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

Lectura # 2. Lectura de apoyo al curso

Sistemas Multiprocesador de Memoria Compartida Comerciales

Arquitecturas y Computación de Alto Rendimiento SISTEMAS PARA COMPUTACIÓN DE ALTO RENDIMIENTO. Índice

UNIVERSIDAD DE OVIEDO MÁSTER EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIONES EN REDES MÓVILES - TICRM TESIS DE MÁSTER

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS

Introducción a la computación paralela

Tema 12. El Hardware de la Realidad Virtual

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

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

Tema: Microprocesadores

TRABAJOS DE MICROPROCESADORES PARA COMUNICACIONES

DEFINICIÓN RAZONES PARA HACER UN MANTENIMIENTO AL PC

ÍNDICE INTRODUCCIÓN AL PROCESAMIENTO PARALELO ARQUITECTURA E INGENIERÍA DE COMPUTADORES TEMA1

1. Introducción a la Arquitectura de Computadoras

Recopilación presentada por 1

MEMORIA EJERCICIO 1 EJERCICIO 2

Estructura de un Ordenador

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

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

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

EVOLUCION PROCESADORES AMD (ADVANCED MICRO DEVICES)

OBJETIVO 1.-.CONOCER EL COMPUTADOR Y SUS PARTES EXTERNAS E INTERNAS.

Modelado de los computadores paralelos

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

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

Tecnología de software para sistemas de tiempo real

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

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Tarjetas gráficas para acelerar el cómputo complejo

6. PROCESADORES SUPERESCALARES Y VLIW

Arquitecturas de Computadoras II. Febrero 2013

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

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

SISTEMAS OPERATIVOS Arquitectura de computadores

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

UNIVERSIDAD CARLOS III DE MADRID PARALELIZACIÓN PARA EL ALGORITMO DE LOS FILTROS DE KALMAN. Trabajo Fin de Grado. Septiembre de 2012

IMPLEMENTACIÓN DE CÓDIGO CFD PARALELO PARA FLUJO COMPRESIBLE

MICROPROCESADORES, EVOLUCIÓN HISTÓRICA Y CARACTERÍSTICAS TÉCNICAS BÁSICAS

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar.

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Arquitectura de Computadores

Tema V Generación de Código

Chipsets página 1 CONJUNTO DE CHIPS PARA SOCKET 7

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

SISTEMAS DE MULTIPROCESAMIENTO

Transcripción:

v. 2015 http://en.wikipedia.org/wiki/graphics_processing_unit http://en.wikipedia.org/wiki/stream_processing http://en.wikipedia.org/wiki/general-purpose_computing_on_graphics_processing_ units http://www.nvidia.com/object/what-is-gpu-computing.html https://www.khronos.org/opencl/ http://www.altera.com/literature/wp/wp-01173-opencl.pdf

GPU (Unidad de procesamiento gráfico) Retorno al concepto de COPROCESADOR: * Uno o varios procesadores con su propio repertorio de instrucciones (o el mismo) y memoria propia (aunque no siempre) conectado como un dispositivo de hardware adicionales en el sistema. * Se accede como cualquier otro dispositivo de I/O (comandos o DMA) a través de los buses del sistema. Ej. PCI-Express, AGP. * Para el software es otro núcleo al cual se le envían datos y rutinas para procesar. Marcas clásicas, en dispositivos independientes: - NVIDIA GeForce (juegos), Quadro (profesionales) - AMD ATI. Ahora vienen incoporados en la CPU: APU - AMD Phenom-II y Fusion - Intel Ivy-bridge

APU (accelerated processing unit) CPU multinúcleo + GPU + Bus de interconexión + Controlador de memoria Ivy Bridge processor, based on 22nm technology, packs a 4-core CPU and a 16-EU (or 16 shader cores) GPU HD4000

Organización sistema con GPU http://www.pgroup.com/lit/articles/insider/v1n1a1.ht m

GP-GPU * Entre los años 1999 y 2000, investigadores del sector informático y de otras disciplinas empezaron a utilizar las GPU para acelerar diversas aplicaciones de cálculo. * Este tipo de aplicación recibe el nombre de General Purpose GPU (GP-GPU) o GPU de propósito general. Sin embargo inicialmente no existían interfaces de programación especialmente dedicadas a este tipo de aplicación, dificultando el desarrollo * 2007 CUDA (Compute Unified Device Architecture) SDK, incluye un compilador con extensiones para C. Aún implica reescritura y reestructuración del programa y el código no es ejecutable en x86. * 2009 OpenCL (Open Computing Language) Plataforma un poco más genérica que CUDA. Para programa algoritmos paralelos en CPU, GPU, DSP, FPGA. Impulsado por Apple, Intel, Qualcomm, AMD, Nvidia, Altera, Samsung, Vivante, Imagination Technologies and ARM. * 2013 OpenACC (Open ACCelerators) Extensiones para código C, C++ y Fortran que permiten al programador especificarle al compilador como ejecutar el programa en paralelo. Cray, CAPS, Nvidia, PGI.

GP-GPU * 2010 Primeras GPU exclusivamente para cálculo: NVIDIA Tesla ( es GPU?) * 2012 Intel sale a competir en el mercado del cómputo científico. Xeon Phi ( es GPU?)

GP-GPU

NVIDIA CUDA * La resolución del problema se realiza mediante threads paralelos diminutos expresados en un kernel. * El programador agrupa los threads en bloques y los encola para para su ejecución en la GPU. * Ya en la GPU, el thread scheduler envía los bloques a los Streaming Multiprocessors que estén disponibles. * Cada SM ejecuta simultáneamente múltiples bloques haciendo temporal multithreading.

NVIDIA CUDA - SIMT * El hardware subdivide los bloques en grupos de 32 threads, llamados warps. * Todos los threads de un mismo warp se ejecutan en lock-step: todos los que están activos simultáneamente realizan la misma instrucción. * La metodología es similar a SIMD, ya que existe un único decodificador de instrucción para los 32 threads del warp, pero NO ES SIMD... * Cada miembro del thread tiene su propio contador de programa. En las bifurcaciones, los miembros del warp pueden diverger. La característica vectorial es invisible al programador, que puede no tenerla en cuenta, el hardware se encarga de ocultarla. * Pero si no la tiene en cuenta SE PAGA FUERTEMENTE EN PERFORMANCE. * NVIDIA llama a esto SIMT (Single Instruction Multiple Thread).

NVIDIA CUDA Temporal Multithreading * Cada unidad de cálculo ejecuta las instrucciones en orden y sin predicción de saltos. * Las latencias de las instrucciones pueden ser de decenas de ciclos de reloj, incluso centenas si hay accessos a memoria global. * Para ocultar la latencia cada SM intercala la ejecución de diferentes warps en las unidades de procesamiento, siempre buscando warps cuyas dependencias estén satisfechas. * Es responsabilidad del usuario que en todo momento hayan suficientes warps listos para ser ejecutados, o de lo contrario el SM tendrá que esperar y se pierde throughput.

NVIDIA CUDA - Performance * Generar suficiente trabajo para esconder la latencia de las instrucciones. * Evitar las bifurcaciones dentro de los warps. * Limitar el uso de variables DOUBLE a donde sea estrictamente necesario. * Respetar las limitaciones de la jerarquía de memoria: accesos alineados a memoria global, evitar las colisiones en memoria compartida, minimizar la cantidad de registros utilizados para no necesitar memoria local. * Dimensionar adecuadamente las unidades de trabajo!!! 440 puede parecer un número como cualquier otro para la cantidad de threads por bloque, pero ni es múltiplo de la cantidad de threads por warp (32), ni divide la cantidad de threads que aceptan típicamente las SM (256, 512, 768, etc.) por lo que las subutilizará. * Tener en cuenta las características de la GPU que se utilizará: lo óptimo en una GeForce puede ser nefasto en una Tesla (diferentes capacidades de SMs, arquitecturas de memoria diferentes, diferentes cantidades de unidades de procesamiento).

NVIDIA CUDA Ejemplo de kernel Ejemplo de kernel CUDA. El siguiente kernel realiza todo el trabajo en GPU necesario para hacer la operación A = α * X * XT + A Donde α es un escalar, X es un vector de largo n, y A es una matriz triangular superior de n2 elementos. En este programa n2 threads ejecutan sendas copias del código del kernel para realizar la operación matricial completa.

AMD ATI Similares en su organización interna a NVIDIA Se programan en OpenCL.

Xeon Phi No arrastran la herencia de GPU. En su lugar arrastran la herencia x86. Diseñados para cálculo científico. * 60 cores simples basados en P5 (Pentium!). * Cada core es superescalar, con Hyper-Threading de cuatro vías. * Set de instrucciones x86, con extensiones x64 y SIMD de 512 bits de ancho. * Caches coherentes de todos los cores. * OpenMP, OpenCL. Más cercano a la programación de multicores que a la de GPUs.

Intel Xeon Phi Knight's Landing Processor (72 cores) Die Map

GP-GPU - Prestaciones

- fin -