La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad."— Transcripción de la presentación:

1 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

2 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 3 Tesla – Serie G80. – Serie T10 o GT200. Fermi – GF – GF104 Kepler – GK104 – GK110 Maxwell

4 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.

5 Tesla G80 Arquitecturas NVIDIA5

6 Streaming Multiprocessor de Tesla G80 Arquitecturas NVIDIA6

7 Ejecución de Threads Introducción7

8 Arquitectura Tesla T10 Introducción8

9 SM Tesla T10 Introducción9

10 Memoria en Tesla GDDR3 DRAM Introducción10

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

12 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

13 Arquitectura Fermi Introducción13

14 Arquitectura Fermi Introducción14

15 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 754-2008 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

16 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

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

18 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

19 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

20 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

21 Comparación GPUs Tesla - Fermi Introducción21

22 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.

23 Evolución de Potencia Total Introducción23

24 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

25 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

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

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

28 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

29 Warp Scheduler Introducción29

30 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

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

32 Kepler GK110 Introducción32

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

34 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()). 1536 KB de cache de L2.

35 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.

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

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

38 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

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


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

Presentaciones similares


Anuncios Google