Arquitecturas GPU v. 2013



Documentos relacionados
Modelo de aplicaciones CUDA

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

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

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS

Arquitecturas GPU v. 2015

TEMA 4. Unidades Funcionales del Computador

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

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

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

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

Procesador Intel Core 2 Extreme de 4 núcleos Traducción de Textos Curso 2007/2008

High Performance Computing and Architectures Group

Procesadores Gráficos: OpenCL para programadores de CUDA

Tarjetas gráficas para acelerar el cómputo complejo

ITT-327-T Microprocesadores

PVM Parallel Virtual Machine. Autor: Alejandro Gutiérrez Muñoz

Talleres CLCAR. CUDA para principiantes. Título. Mónica Liliana Hernández Ariza, SC3UIS-CRC NVIDIA Research Center

picojava TM Características

Generalidades Computacionales

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

Electrónica Digital II

La nueva arquitectura del paquete AMORE (A MORE Flexible Neural Network)

Sistemas Operativos Windows 2000

Procesador Pentium II 450 MHz Procesador Pentium II 400 MHz Procesador Pentium II 350 MHz Procesador Pentium II 333 MHz Procesador Pentium II 300 MHz

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Introducción a las redes de computadores

Unidad 1: Conceptos generales de Sistemas Operativos.

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Sistema Operativo Linux

TGA - Tarjetas Gráficas y Aceleradores

Desarrollo de apps para móviles Android. Introducción a Android

MICROSOFT MOVIE MAKER: CREACIÓN DE PELÍCULAS DOMÉSTICAS CON VÍDEOS O FOTOGRAFÍAS DIGITALES

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Figura 1.4. Elementos que integran a la Tecnología de Información.

UNIVERSIDAD CARLOS III DE MADRID

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

INFORMACIÓN TÉCNICA ACERCA DE TOSHIBA Y LA TECNOLOGÍA MÓVIL. Toshiba y la tecnología móvil Intel Centrino Duo para empresas

Capítulo 5. Cliente-Servidor.

Estrategia de Cómputo en la Nube. Servicios en la Nube

Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

1.2 Análisis de los Componentes. Arquitectura de Computadoras Rafael Vazquez Perez

TEMA 1. Introducción

Estado actual de los procesadores

Entre los más conocidos editores con interfaz de desarrollo tenemos:

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

Tema: Historia de los Microprocesadores

Tipos de Dispositivos Controladores

Arquitecturas de computadoras

Guía de selección de hardware Windows MultiPoint Server 2010

BASES DE DATOS OFIMÁTICAS

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

OBJETIVOS DE LA MATERIA... 4 PROGRAMA ANALÍTICO. CONTENIDOS TEÓRICOS Y PRÁCTICOS... 5 BIBLIOGRAFIA... 7

Software Computacional y su clasificación

UT04 01 Máquinas virtuales (introducción)

La Arquitectura de las Máquinas Virtuales.

Clase 20: Arquitectura Von Neuman

Windows Server Windows Server 2003

2. Requerimientos Técnicos

ING. YURI RODRIGUEZ ALVA

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators

Capitulo 1. Introducción a Objetos de Aprendizaje Móvil

1.1 Definición del problema

Tema 3 GPUs: Introducción

4. Programación Paralela

Software de sistema: Programas genéricos que permiten gestionar los recursos del ordenador.

Trabajo TP6 Sistemas Legados

MANUAL DE USUARIO Joomla 2.5

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

Informática Electrónica Interfaces para los programas de aplicación (APIs)

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES. PROF. ISRAEL J. RAMIREZ israel@ula.ve

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Análisis de aplicación: Virtual Machine Manager

Familia de Windows Server 2003

Arquitecturas de Computadoras II. Febrero 2013

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

ESCUELA NORMAL PROFESOR CARLOS A. CARRILLO

TEMA 2: CAPACIDAD: Diseño del Servicio TI Anexo II: Amazon EC2

UNIVERSIDAD AUTÓNOMA DEL CARIBE

Laboratorio de Herramientas Computacionales

Global File System (GFS)...

Toshiba e Intel: emocionante entretenimiento digital portátil

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

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

Capítulo 1 Introducción a la Computación

Dr.-Ing. Paola Vega Castillo

Intel XeonPhi Workshop

Métricas de Rendimiento

Introducción a Computación

Unidad I. Introducción a la programación de Dispositivos Móviles

WEB APP VS APP NATIVA

Unidad CPE/VPN RedesComm, c.a.

WebSphere es una familia de productos de software propietario de IBM

El computador. Miquel Albert Orenga Gerard Enrique Manonellas PID_

Programación en LabVIEW para Ambientes Multinúcleo

BUSES GRUPO 8 Miguel París Dehesa Ricardo Sánchez Arroyo

Transcripción:

v. 2013

Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image, video and digital signal processing) pero no para procesamiento de propósitos generales con acceso a los datos aleatorio (randomized data access) como por ejemplo bases de datos. El modelo es adecuado para aplicaciones que presentan las siguientes características: Cómputo intensivo, el número de operaciones aritméticas por I/O o referencia a memoria debe ser elevado. En muchas aplicaciones de procesamiento de señales actuales dicha razón está bien por encima de 50:1 y se incrementa con la complejidad del algoritmo. Parallelismo en los Datos, está presente si la misma función se aplica a todos los elementos de un stream y un cierto número de elementos puede ser procesado simultaneamente sin esperar los resultados de operaciones anteriores. Localidad en los Datos, es una forma específica de localidad temporal, común en procesamiento multimedia y de señales, donde los datos se producen una vez, son utilizados una o dos veces en la aplicación, y nunca más son utilizados. DATAFLOW PROGRAMMING

GPU (Unidad de procesamiento gráfico) Coprocesador con su propio repertorio de instrucciones y memoria propia (aunque no siempre). Se accede como cualquier otro dispositivo de I/O (comandos o DMA). Para el software es otro núcleo al cual se le envían datos y rutinas para procesar. Marcas actuales: - Sony/Toshiba/IBM Cell Broadband Engine - NVIDIA family of GPUs. GeForce (games), Quadro (workstation) y Tesla (supercomputing). - ATI (AMD) family, Fusion APU accelerated processing unit (CPU+GPU) DirectX (Microsoft propietario) vs. OpenGL (Open Graphics Library): API multilenguaje y multiplataforma para gráficos 2D y 3D (250+ funciones).

Organización http://www.pgroup.com/lit/articles/insider/v1n1a1.htm

Prestaciones Tres aspectos clave: Procesadores: 30 multiprocesadores, cada uno con 8 procesadores de hebras que ejecutan el mismo programa sincrónicamente (ejecutan la misma instrucción al mismo tiempo). Memoria: hasta 4GB actualmente, bastante lenta como en CPU. Cache, pero principalmente ejecución por hebras. Interconexión: gran ancho de banda. DESACTUALIZADO

GP-GPU Los chips gráficos empezaron como procesadores gráficos de funciones fijas, pero se hicieron cada vez más programables y potentes desde el punto de vista computacional, lo que permitió a NVIDIA introducir la primera GPU. Entre los años 1999 y 2000, científicos del sector informático y de otras disciplinas empezaron a utilizar las GPU para acelerar diversas aplicaciones científicas. Fue el nacimiento de un nuevo concepto denominado GP-GPU o GPU de propósito general. Aunque los usuarios conseguían un rendimiento sin igual (por encima de 100x con respecto a las GPU en algunos casos), el problema era que las GP-GPU requerían el uso de APIs de programación de gráficos como OpenGL al programar para las GPU. Eso limitaba el acceso a la enorme capacidad de las GPU en el campo científico. NVIDIA 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.

NVIDIA Fermi 16x32=512 16 SM (streaming multiprocessor) de 32 cores CUDA. Los 32 cores ejecutan el mismo kernel sobre 32 threads diferentes. Los 16 SM pueden ejecutar diferentes kernels (multicore)

APU (accelerated processing unit) CPU multinúcleo + GPU + Bus de interconexión + Controlador de memoria

Herramientas de programación Actualmente: NVIDIA's CUDA AMD's Brook+ OpenCL: Open standard language, portable entre diferentes GPU y otros systemas paralelos (FPGA) Requieren reestructurar el programa de aplicación en dos partes: la sección host y la sección acelerador, que debe ser expresada como funciones tipo kernel. HOST: manage device memory allocation, data movement, and kernel invocation. KERNEL: optimizado para GPU (unrolling loops and orchestrating device memory fetches and stores). Si bien se ha avanzado mucho, tanto CUDA como OpenCL están lejos de ser una herramienta de utilización inmediata (curva de aprendizaje).

- Programación Plataforma NVIDIA-CUDA La plataforma de cálculo paralelo CUDA proporciona extensiones de C y C++ que permiten implementar paralelismo en el procesamiento de tareas y procesos 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ándares abiertos como las directivas del modelo OpenACC.

- Programación OpenCL Open Computing Language permite crear aplicaciones con paralelismo a nivel de datos y de tareas que pueden ejecutarse en diferentes plataformas (CPU, GPU, FPGA). El lenguaje está basado en C, eliminando cierta funcionalidad y extendiéndolo con operaciones que permiten la especificación de paralelismo. Apple creó la especificación original y fue desarrollada en conjunto con AMD, IBM, Intel y NVIDIA. Apple la propuso al Grupo Khronos para convertirla en un estándar abierto y libre de derechos.

Tendencias en arquitecturas paralelas reprogramables www.altera.com/literature/wp/wp-01173-opencl.pdf

Tendencias OpenCL en FPGA...

Tendencias OpenCL en FPGA

Tendencias AMD Bulldozer microarchitecture Ver procesadores FX