![Page 1: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/1.jpg)
Arquitecturas de GPU de NVIDIA
Martín Belzunce
1Arquitecturas NVIDIA
Computación Paralela con Procesadores GráficosDepartamento de Electrónica
Facultad Regional Buenos Aires – Universidad Tecnológica Nacional
![Page 2: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/2.jpg)
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 NVIDIA 2
![Page 3: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/3.jpg)
Arquitecturas NVIDIA
Arquitecturas NVIDIA 3
• Tesla– Serie G80.– Serie T10 o GT200.
• Fermi– GF– GF104
• Kepler– GK104– GK110
• Maxwell
![Page 4: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/4.jpg)
Arquitecturas Tesla
Arquitecturas NVIDIA 4
• 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.
![Page 5: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/5.jpg)
Tesla G80
Arquitecturas NVIDIA 5
![Page 6: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/6.jpg)
Streaming Multiprocessor de Tesla G80
Arquitecturas NVIDIA 6
![Page 7: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/7.jpg)
Introducción 7
Ejecución de Threads
![Page 8: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/8.jpg)
Introducción 8
Arquitectura Tesla T10
![Page 9: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/9.jpg)
Introducción 9
SM Tesla T10
![Page 10: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/10.jpg)
Introducción 10
Memoria en Tesla
• GDDR3 DRAM
![Page 11: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/11.jpg)
Introducción 11
Resumen Tesla
• Performance en Doble Precisión 10:1 respecto de Simple Precisión.
![Page 12: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/12.jpg)
Introducción 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.
![Page 13: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/13.jpg)
Introducción 13
Arquitectura Fermi
![Page 14: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/14.jpg)
Introducción 14
Arquitectura Fermi
![Page 15: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/15.jpg)
Introducción 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.
![Page 16: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/16.jpg)
Introducción 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.
![Page 17: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/17.jpg)
Introducción 17
Performance en Doble Precisión
• Hasta 16 operaciones FMA por SM por clock.
![Page 18: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/18.jpg)
Introducción 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.
![Page 19: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/19.jpg)
Introducción 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.
![Page 20: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/20.jpg)
Introducción 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.
![Page 21: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/21.jpg)
Introducción 21
Comparación GPUs Tesla - Fermi
![Page 22: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/22.jpg)
Introducción 22
Resumen Fermi• 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.
![Page 23: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/23.jpg)
Introducción 23
Evolución de Potencia Total
![Page 24: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/24.jpg)
Introducción 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.
![Page 25: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/25.jpg)
Introducción 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.
![Page 26: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/26.jpg)
Introducción 26
Kepler GK104<- GTX-680• 8 SMX• 4 Controladores de Memoria (con su proprio sector de L2)• Cada SMX >> Cuda Cores (1536).
![Page 27: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/27.jpg)
Introducción 27
Next Generation SM: SMX
GPUs con menos SMX pero más cores en total
Aumentan considerablemente
los procesadores
![Page 28: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/28.jpg)
Introducción 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.
![Page 29: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/29.jpg)
Introducción 29
Warp Scheduler
![Page 30: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/30.jpg)
Introducción 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.
![Page 31: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/31.jpg)
Introducción 31
Kepler GK110
• Pensada para cómputo. Mayor performance, seis controladores de memoria. Mayor capacidad de procesamiento: 15 SMX.
![Page 32: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/32.jpg)
Introducción 32
Kepler GK110
![Page 33: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/33.jpg)
Introducción 33
SMX en GK110• 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)
![Page 34: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/34.jpg)
Introducción 34
Jerarquía de Memoria• 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.
![Page 35: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/35.jpg)
Introducción 35
Paralelismo Dinámico
• 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.
![Page 36: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/36.jpg)
Hardware Disponible
Introducción a la Materia 36
• 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
![Page 37: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/37.jpg)
Herramientas de Trabajo
Introducción a la Materia 37
• Cmake• Kdevelop• Nsight• CUDA Toolkit• SVN• Torque• Visual Profiler
![Page 38: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/38.jpg)
PlanificaciónClase Nº 1 12/08/14 Introducción a la Materia y a GPGPU. Primeros pasos con CUDA.
Sin Clases 19/08/14 Día de la UTN.
Clase Nº 2 26/08/14 CUDA y Arquitectura de Procesadores NVIDIA.
Clase Nº 3 02/09/14 Clase Práctica. Suma y Producto de Matrices.
Clase Nº 4 09/09/14 Uso de Distintos Tipos de Memoria con CUDA. Reducción.
Clase Nº 5 16/09/14 Ocupación. Herramientas de Trabajo: Nsight, cuda-gdb, cmake, visual profiler, cuda_occupancy_calculator.
Clase Nº 6 23/09/14 Procesamiento de Imágenes con CUDA.
Clase Nº 7 30/09/14 Parcial Teórico y TP Nº 1.
Clase Nº 8 07/10/14 TP Nº 1
Clase Nº 9 14/10/14 Bibliotecas externas: CuBlas, CULA, Thrust, CUFFT.
Clase Nº 10 21/10/14 Optimizaciones Avanzadas.
Clase Nº 11 28/10/14 Streams y Ejecución Asincrónica.
Clase Nº 12 04/11/14 Parcial Teórico y TP Nº 2.
Clase Nº 13 11/11/14 TP Nº 2.
Clase Nº 14 18/11/14 Multi-GPU.
Clase Nº 15 25/11/14 OpenCL.
Fecha Límite Promoción
09/12/14 Fecha límite para entregar tps y tener parciales aprobados.
Introducción a la Materia 38
![Page 39: Arquitecturas de GPU de NVIDIA Martín Belzunce 1Arquitecturas NVIDIA Computación Paralela con Procesadores Gráficos Departamento de Electrónica Facultad](https://reader036.vdocuments.site/reader036/viewer/2022062315/5665b4341a28abb57c8ff56e/html5/thumbnails/39.jpg)
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ón 39