![Page 1: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/1.jpg)
Arquitectura de aceleradores
Carlos BederiánIFEG – CONICET
GPGPU Computing Group – FaMAF – [email protected]
![Page 2: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/2.jpg)
Contenidos
● Cómo llegamos hasta acá
● Qué hay ahora
● Qué hace
● Cómo lo uso
● Hacia dónde parece que vamos
![Page 3: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/3.jpg)
¿Qué compro?● $: GeForce GTX 750Ti, GTX 760
Radeon R9 270, R9 270X, R9 280
● $$: GeForce GTX 770, GTX 780, GTX 780Ti
Radeon R9 280X, R9 290, R9 290X
● $$$$: GeForce GTX Titan, GTX Titan Black
Radeon R9 295X2
● $$$$$$$$: GTX Titan Z, Tesla K10, K20, K20X, K40
FirePro W9000, W9100, S10000
Xeon Phi 3120, 5120, 7120
![Page 4: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/4.jpg)
![Page 5: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/5.jpg)
● Interfaz externa● Tipo, ancho de banda, coherencia
● Cache L2● Tamaño, ancho de banda
● Controladores de memoria● Ancho, frecuencia
● Elementos de cómputo● Cantidad, frecuencia● Detalles internos
Cosas interesantes
![Page 6: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/6.jpg)
CUDA en el hardware
● Bloques completos son asignados a SMs
● Única (?) forma rápida de cooperar
● Bloques divididos en paquetes de 32 hilos llamados warps
● El hardware ejecuta warps de manera ~atómica
● Se intercalan los warps en las unidades de ejecución
![Page 7: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/7.jpg)
CC 2.0 - Fermi
● Ejecución:● Scheduling de hasta 48 warps● 2 warps en ejecución● 16 cores por warp, 2x frecuencia● FP64: ½ FP32 (Tesla), 1/8 (GeForce)
● Registros● ~21 floats/ints por hilo, 64 max (!!!)
● Mem. compartida + Caché L1● 64KB: 16+48 o 48+16● Broadcast o banked access
![Page 8: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/8.jpg)
CC 2.0 (cont.)
● Caché de constantes● 8KB● Sólo broadcast● Un ciclo de latencia
● Hardware de texturas● 12KB de caché, acceso espacial● Interpolación● Generación de direcciones
● Coordenadas normalizadas● Condiciones de contorno
![Page 9: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/9.jpg)
CC 2.1 (GTX 460)
● Superescalar● 2 warps por ciclo● Hasta dos instrucciones independientes por warp en ejecución (dual issue)
● Distinto balance● FP64: 1/12 FP32● Más SFUs● Menos LD/ST● Más unidades de texturas
![Page 10: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/10.jpg)
Insostenible
06/2005 12/2005 06/2006 12/2006 06/2007 12/2007 06/2008 12/2008 06/2009 12/2009 06/2010 12/20100
50
100
150
200
250
300
130nm
90nm
65nm
55nm
40nm
TD
P (
W)
![Page 11: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/11.jpg)
Power budget
● Zócalo PCI Express: 75W
● Cables PEG
● 6 pines: 75W
● 8 pines: 150W
● Estándar PCI-SIG: 300W (Slot + 6 pines + 8 pines)
![Page 12: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/12.jpg)
CC 3.0 - Kepler
● Ejecución● Scheduling de 64 warps● 4 warps simultáneos
● Dual issue como CC 2.1● 32 cores por warp
● Doble de registros● 32 floats/ints por hilo
● Diseñado para gaming● FP64: 1/12 FP32
● ~2x performance/watt
![Page 13: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/13.jpg)
CC 3.0 – Cooperación
● Mejoras para kernels complejos
● Operaciones atómicas en memoria global más rápidas
● ¿Y si no uso atomics para cooperar?
● Ancho de banda de memoria compartida duplicado
● ¡Pero sigo necesitando barreras lentas!
● Un warp está sincronizado implícitamente
● Pre-Kepler: Memoria compartida para intercambiar
datos intra-warp (peligroso)
![Page 14: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/14.jpg)
CC 3.0 – shfl● shfl: Intercambio de datos dentro de un warp
● No requiere memoria compartida● Más rápido que memoria compartida sin barreras
● ¿Cómo lo uso?● Difícil: #include <sm_30_intrinsics.h>● Fácil: CUB, Thrust ya usan
![Page 15: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/15.jpg)
CC 3.0 – Texturas
● Antes: 128 slots de texturas que deben ser administrados
● Establecer un binding antes de ejecutar kernels
● Overhead de llamadas al driver
● Engorroso
● Ahora: Bindless textures
● Uso directo
● Texturas ilimitadas por kernel
![Page 16: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/16.jpg)
CC 3.5 – Kepler 2.0
● Diseñado para cómputo
● FP64: 1/3 FP32
● Hasta 255 registros/hilo
● 48 KB de caché de
texturas sólo lectura
● __ldg()
● const * __restrict__
![Page 17: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/17.jpg)
CC 3.5 – Grid Management Unit
● Pre-Kepler: 3 colas de trabajo (kernels, upload, download)● Dependencias falsas al serializar streams
● HyperQ: 32 colas independientes● No hay sorpresas con streams● CUDA Multi-Process Service
● Dynamic Parallelism● Los kernels pueden encolar otros kernels
● ¡Recursión!● Pausa y continuación de kernels
![Page 18: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/18.jpg)
CC 3.5 – Funnel shift
● Nueva instrucción: shf.{l,r}(a, b, n)
● Concatena dos operandos de 32 bit en uno de 64
● Shift n bits hacia izquierda (shf.l) / derecha (shf.r)
● Devuelve 32 bits más (shf.l) / menos (shf.r) significativos
● ¡Rotación en una instrucción!
● ¡Bitcoins!
● Criptografía
![Page 19: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/19.jpg)
CC 5.0 - Maxwell
● 192 es raro, reducción a 128
● Subdivisión en 4:● Conectar todos los cores a todos los registros es caro
● No más cores compartidos entre schedulers
● Shared sigue accesible a todos
● ~2X performance/watt
![Page 20: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/20.jpg)
Futuro
![Page 21: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/21.jpg)
Futuro (cont.)
● NVLink 2.0 – Coherencia de caché
● ¿Coherente con qué CPU?
● Denver – Arquitectura ARM de NVIDIA
● Ancho (7-issue), ILP alto
● Consorcio OpenPOWER
● IBM, NVIDIA, Micron, Mellanox, Samsung, Google...
● IBM licencia POWER8
● NVIDIA licencia NVLink
![Page 22: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/22.jpg)
Memoria 3D● Ancho de banda normalmente limitado por:
● Cantidad de pines
● Calidad de señal
![Page 23: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/23.jpg)
¿Y AMD?● En GPUs, más o menos lo mismo
![Page 24: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/24.jpg)
HSA● En arquitecturas heterogéneas, más avanzados que el resto
● Implementaciones de HSA: Kaveri, ¿Playstation 4?
![Page 25: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/25.jpg)
El elefante en la habitación
● 1997: MMX (64 bits, enteros)
● 1999: SSE (128 bits, float)
● 2001: SSE2 (double, enteros)
● SSE3, SSSE3, SSE4.1, SSE4.2, SSE4a...
● 2011: AVX (256 bits, float, double)
● 2013: AVX2 (enteros), FMA3 – scatter / gather
● 2016: AVX-512 (512 bits) – opmasks
![Page 26: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/26.jpg)
Xeon Phi
![Page 27: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/27.jpg)
Hm, suena familiarTesla K40 Xeon Phi 7120X
Vector Warp, 32 elementos* KNI (512 bits: 16 FP32, 8 FP64)
Unidades 15 SMX 61 coresRecursos por unidad
6 warps 1 core P54C1 unidad KNI
SMT 64 warps por SMX(~11 por unidad de ejecución)
4 hilos por core
Frecuencia 745 – 875 MHz 1238 – 1333 MHzFLOPS 4.3 TFLOPS FP32
1.4 TFLOPS FP642.4 TFLOPS FP321.2 TFLOPS FP64
Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GBBandwidth 288 GBps 354 GBpsTDP 245W
(5.8 GFLOPS FP64 / W)300W(4.1 GFLOPS FP64 / W)
Proceso TSMC HP 28nm Intel Tri-gate 22nm
![Page 28: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/28.jpg)
Knights Landing (2015)
● 72 cores, arquitectura Silvermont (Atom)
● 2 unidades AVX-512 por core
● ~3 TFLOPS FP64
● Memoria 3D + Memoria DDR4
● Standalone o acelerador PCIe
● Intel 14nm
![Page 29: Arquitectura de aceleradores · 2014. 5. 6. · ¿Y AMD? En GPUs, más o ... Memoria 384-bit GDDR5, 6GHz, 12GB 512-bit GDDR5, 5.5GHz, 16GB Bandwidth 288 GBps 354 GBps TDP 245W (5.8](https://reader034.vdocumento.com/reader034/viewer/2022051923/6010edade17fb667691ae027/html5/thumbnails/29.jpg)
Eso es todo amigos
¿Preguntas?