Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad.

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

UNIVERSIDAD DEL VALLE DE MEXICO
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Procesadores AMD.
III - Gestión de memoria
Graphics Processing Units (GPUs)
Presentación y organización del curso
PROCESADORES SUPERESCALARES
Microprocesadores.
Arquitectura de Conjunto de Instrucciones (ISA)
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al costo de una memoria de baja velocidad Los puntos básicos relacionados con.
Mejoras a las Máquinas Von Neumann
PAULA ANDREA CHAVEZ C. GRADO: PROFESOR: JOSE WILSON QUINTERO
Vista General del Funcionamiento del Computador y sus Interconexiones
ISA (Instruction Set Architecture)
NVIDIA GEFORCE GTX 550 Ti.
Tema 10: Gestión de Memoria
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Introducción a la Ingeniería en Sistemas
UNIDAD IV ADMINISTRACIÓN DE SISTEMAS CONCEPTOS DE GESTIÓN Y ALMACENAMIENTO.
I Encuentro Estudiantes de Doctorado UPV 12 de junio de 2014, Valencia Carlos Reaño González Grupo de Arquitecturas Paralelas.
Curso de Computación Científica en Clusters
5º Microprocesadores para comunicaciones
Reconstrucción de Imagen en Tomógrafo por Emisión de Positrones
Procesamiento paralelo
Comparativa últimos modelos: Javier Sánchez Bustamante VS GeForce 8800 SeriesRadeon X3800 Series.
Administración de Memoria Memoria Virtual
SOFTWARE DE PROGRAMACIÓN
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Manejo de Memoria en CUDA (I)
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
ARQUITECTURA CUDA Integrantes: Jose D Apollo
NVIDIA Confidential Confidencial NVIDIA Información Confidencial - NVIDIA Civilization V image provided by 2k Games.
Organización de Computadoras
Alejandro Samarín Lionel Aster Mena García Sergio Armas Pérez.
SISTEMAS OPERATIVOS.
GPUs Rayco González Sicilia Microprocesadores para Comunicaciones 5º ETSIT.
Tema 2: Lenguaje máquina
Arquitectura de Von Neumann
Memoria virtual.
Evolución del procesador
Alejandro Samarín Lionel Aster Mena García Sergio Armas Pérez.
PROCESADORES DE SEÑALES DE VIDEO VSP2000 PALOMA FUENTES Microprocesadores para Comunicaciones – 5º ETSIT.
Sistemas Operativos Avanzados
Name Event Date Name Event Date 1 Procesadores de streams 1 Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández.
1 Memorias. 2 RAM (Memoria de acceso aleatorio) El procesador puede tomar un dato que esté al principio, al medio o al final de la memoria RAM. Hardware.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Introducción a CUDA C Laboratorio de Intel para la Academia y Cómputo de alto desempeño.
TIPOS DE PROCESADOR INTEL PENTIUM II El procesador utiliza la tecnología de alto desempeño Dual Independent Bus para entregar un amplio ancho de banda.
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Capítulo 4 CPU y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Por: Ernesto Y. Soto Rivas G
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 05 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
Tema: Historia de los Microprocesadores
ARQUICTECTURA DE SERVIDORES
TEMA II FUNDAMENTOS DEL DISENO DE COMPUTADORES
Mónica Quintana Pineda
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
El procesador.
Principio unidad 1.
     Jerarquía de memoria.
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
I Kamilo Osorio Restrepo 8°B Juan David Velez. TIPOS DE PROCESADORES Y SUS FUNCIONES PRINCIPALES CISC. Complex Instruction Set Computing. Posee un número.
¿Qué es la memoria DDR? ¿Qué es la memoria DDR? DDR SDRAM es la abreviatura para Double Data Rate Synchronous Dynamic Random Access Memory (Memoria de.
Sistemas Paralelos Profesor: Franco Chichizola JTP: Adrian Pousa Taller de programación.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
Diferencias entre las arquitecturas de 64 bits de AMD e intel.
Transcripción de la presentación:

Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad Regional Buenos Aires – Universidad Tecnológica Nacional

Evolución de las GPUs para Aplicaciones Científicas 2001: Primera con múltiples cores (vertex and pixel processors). 2003: Los procesadores se pueden programar con Cg. 2006: Se unifican los vertex y pixel processors. 2007: Surge CUDA. 2008: Aritmética de punto flotante de doble precisión. 2010: Operadores IEEE-normalized y chequeo de errpres en memoria (ECC). 2012: Mayor soporte para aplicaciones con cómputo irregular. 2014: Espacio de memoria de GPU y CPU unificado. Sigue progresando…. Arquitecturas NVIDIA2

3 Tesla – Serie G80. – Serie T10 o GT200. Fermi – GF – GF104 Kepler – GK104 – GK110 Maxwell

Arquitecturas Tesla Arquitecturas NVIDIA4 Primera Arquitectura compatible con CUDA Primera Generación G80 -> Ej: GTX8800 Segunda Generación T10 (GT200) -> Ej: GTX285 Compute Capabilities 1.0, 1.1, 1.2 y 1.3.

Tesla G80 Arquitecturas NVIDIA5

Streaming Multiprocessor de Tesla G80 Arquitecturas NVIDIA6

Ejecución de Threads Introducción7

Arquitectura Tesla T10 Introducción8

SM Tesla T10 Introducción9

Memoria en Tesla GDDR3 DRAM Introducción10

Resumen Tesla Performance en Doble Precisión 10:1 respecto de Simple Precisión. Introducción11

Arquitectura Fermi Busca: – Mejor programabilidad y flexibilidad para que las GPUs se usen en todo tipo de aplicaciones -> Mainstream Computing. – Mejorar performance en precisión doble. – Mejorar performance en aquellos casos en que no hay suficiente paralelismo para ocultar latencia de accesos a memoria -> Caches. – Soporte ECC. – Acelerar Operaciones Atómicas. Introducción12

Arquitectura Fermi Introducción13

Arquitectura Fermi Introducción14

SM Fermi Tercera Generación de SM 32 Cuda Cores (x4 vs Tesla) CUDA Core: 1 instr FP o INT por thread por clock Unidades FP con IEEE Multiplicación de Enteros de 32 bits (24 en GT200). 16 unidades de Load/Store. 4 unidades de SFU. 1 instrucción por thread por clock. Independiente respecto del resto de las unidades. Incorpora Cache L1 en la Memoria Compartida. Introducción15

Unidades de Punto Flotante Implementaciones en Hardware de modos de redondeos. Manejo de números subnormales por hardware. En GT200: operaciones Multiply-Add (MAD) en 1 clock pero con pérdida de precisión. En Fermi: operaciones FMA (Fused Multiply-Add) para Simple y Doble Precisión. Introducción16

Performance en Doble Precisión Hasta 16 operaciones FMA por SM por clock. Introducción17

Dual Warp Scheduler Dos Warp Schedulers y dos Unidades de Despacho de Instrucciones. Cada scheduler emite instrucciones a un grupo de 16 CUDA Cores, a las 16 unidades de Load/Store o a las 4 SFU. Introducción18

Set de Instrucciones Fermi Segunda Generación del set de instrucciones PTX 2.0 (Parallel Thread Execution). Soporte para OpenCl y DirectCompute. Direccionamiento de 64-bit. Soporte total para C++. Espacio de memoria unificado para variables y punteros. Mejora de performance en saltos condicionales mediante predicación. Introducción19

Jerarquía de Memoria en Fermi La Memoria Compartida funcionaba bien solo en ciertas aplicaciones pero otras andarían mejorar con una cache -> se incorpora cache L1 configurable con la memoria compartida. 64 KB de memoria en SM, configurables en 48 KB de compartida y 16 KB de cache L1 y viceversa. Cache L2 para todos los accesos a memoria global y texturas. La cache de L1 también sirve para almacenar temporariamente valores de registros (spill). (En Tesla a DRAM). Primera GPU en soportar códigos de chequeo de errores (ECC). Instrucciones atómicas más rápidas. Introducción20

Comparación GPUs Tesla - Fermi Introducción21

Resumen Fermi Introducción22 Introducción de Caches de L1 y L2. Operaciones de Punto Flotante más precisas. Performance 2:1 en Doble Precisión respecto de Simple. Nuevo set de instrucciones compatible con C++. Mayor capacidad de hardware en Gflops/seg y ancho de banda en memoria global y pci express.

Evolución de Potencia Total Introducción23

Potencia Máxima PCI Express Slot PCI Express: 75 W. Conector 6 pines: 75W. Conector 8 pines 150W. Máxima potencia: 300W. Límite de GPUs NVIDIA: 250W. Introducción24

Arquitectura Kepler Seguir mejorando la performance pero sin aumentar el consumo total -> Mayor Eficiencia Primera Generación de Kepler: GK104 (Por ej: GTX680). Diseñada para obtener la mejor performance/watt posible. Introduce SMX. Trabaja a mitad de frecuencia pero incorpora muchos más cores, duplicando perofrmance por watt respecto de Fermi. Introducción25

Kepler GK104 Introducción26 <- GTX SMX 4 Controladores de Memoria (con su proprio sector de L2) Cada SMX >> Cuda Cores (1536).

Next Generation SM: SMX Introducción27 GPUs con menos SMX pero más cores en total Aumentan considerablemente los procesadores

SMX 192 Cuda Cores 32 LD/ST y 32 SFU 16 unidades de textura 4 Warp Schedulers Cada Warp Scheduler despacha dos instrucciones por warp por clock. En tiempo de compilación se prevee parte de la planificación de instrucciones. Diseñada para Gaming: 1/12 performance en Doble Precisión. Introducción28

Warp Scheduler Introducción29

Mejoras en GK104 Mejora de rendimiento sacando shader clock. Mayor Ancho de Banda para Cache Hits de L2. Mejora en las instrucciones atómicas. Instrucciones Atómicas de 64 bit. Memoria Global 6 Gbps DDR5. Introducción30

Kepler GK110 Pensada para cómputo. Mayor performance, seis controladores de memoria. Mayor capacidad de procesamiento: 15 SMX. Introducción31

Kepler GK110 Introducción32

SMX en GK110 Introducción33 Similar a SMX en GK104, pero con unidades de Doble Precisión (64). 1/3 Single Precisión 48 KB de solo lectura (Cache de texturas y constantes)

Jerarquía de Memoria Introducción34 Agrega una opción más de configuración entre cache L1 y Memoria Compartida (32/32) Doble de ancho de banda en memoria compartida El uso de la cache de solo lectura se puede utilizar fuera de las texturas (por compilador o programador: const * __restrict__ o __ldg()) KB de cache de L2.

Paralelismo Dinámico Introducción35 Fermi era buena para grandes cantidades de datos a procesar predefinidos en tiempos de lanzamiento de kernel. En aplicaciones genéricas, la cantidad de datos a procesar puede definirse en tiempo de ejecución. GK110 permite que un kernel, lance otro kernel, cree streams, eventos, etc sin interacción con el CPU. Ejemplo: loops con diferente cantidad de datos en cada ciclo.

Hardware Disponible Introducción a la Materia36 Servidor FERMI: – 1 GTX-480. Servidor Optimus: ? – 2 GTX-480 – 2 Tesla c2070 Tercer Servidor a Instalar. – 2 GTX-480 – 2 Tescla c2070

Herramientas de Trabajo Introducción a la Materia37 Cmake Kdevelop Nsight CUDA Toolkit SVN Torque Visual Profiler

Planificación Clase Nº 112/08/14Introducción a la Materia y a GPGPU. Primeros pasos con CUDA. Sin Clases19/08/14Día de la UTN. Clase Nº 226/08/14CUDA y Arquitectura de Procesadores NVIDIA. Clase Nº 302/09/14Clase Práctica. Suma y Producto de Matrices. Clase Nº 409/09/14Uso de Distintos Tipos de Memoria con CUDA. Reducción. Clase Nº 516/09/14Ocupación. Herramientas de Trabajo: Nsight, cuda-gdb, cmake, visual profiler, cuda_occupancy_calculator. Clase Nº 623/09/14Procesamiento de Imágenes con CUDA. Clase Nº 730/09/14Parcial Teórico y TP Nº 1. Clase Nº 807/10/14TP Nº 1 Clase Nº 914/10/14Bibliotecas externas: CuBlas, CULA, Thrust, CUFFT. Clase Nº 1021/10/14Optimizaciones Avanzadas. Clase Nº 1128/10/14Streams y Ejecución Asincrónica. Clase Nº 1204/11/14Parcial Teórico y TP Nº 2. Clase Nº 1311/11/14TP Nº 2. Clase Nº 1418/11/14Multi-GPU. Clase Nº 1525/11/14OpenCL. Fecha Límite Promoción 09/12/14Fecha límite para entregar tps y tener parciales aprobados. Introducción a la Materia38

Bibliografía NVIDIA Inc., CUDA C Programming Guide, version 5.5, David B. Kirk, Wen-mei W. Hwu. Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufmann, Introduction to Parallel Programming - Peter Pacheco - Ed. Elsevier Morgan Kaufman Programming Massively Parallel Processors. Hands-on Approach. David B. Kirk and Wen-mei W. Hwu. Elsevier GPU Computing Gems. Emerald Edition. Wen-mei W. Hwu. Elsevier Jason Sanders, Edward Kandrot, CUDA by Example, Addison- Wesley, Introducción39