# Ampere (microarquitectura)

Ampere es el nombre en clave de una microarquitectura de unidad de procesamiento de gráficos (GPU) desarrollada por Nvidia como sucesora de las arquitecturas Volta y Turing. Se anunció oficialmente el 14 de mayo de 2020 y lleva el nombre del matemático y físico francés André-Marie Ampère.
Nvidia anunció las GPU de consumo de la serie GeForce 30 con arquitectura Ampere en un evento especial de GeForce el 1 de septiembre de 2020. Nvidia anunció la GPU A100 de 80 GB en SC20 el 16 de noviembre de 2020. Las tarjetas gráficas Mobile RTX y la RTX 3060 basada en la arquitectura Ampere se revelaron el 12 de enero de 2021.
Nvidia anunció el sucesor de Ampere, Hopper, en GTC 2022 y "Ampere Next Next" para un lanzamiento de 2024 en GPU Technology Conference 2021.

## Detalles

Las mejoras arquitectónicas de la arquitectura Ampere incluyen lo siguiente:
* CUDA Compute Capability 8.0 para A100 y 8.6 para la serie GeForce 30
* Proceso FinFET de 7 nm de TSMC para A100
* Versión personalizada del proceso de 8 nm de Samsung (8N) para la serie GeForce 30
* Núcleos Tensor de tercera generación con compatibilidad con FP16, bfloat16, TensorFloat-32 (TF32) y FP64 y aceleración reducida. Los núcleos Tensor individuales tienen 256 operaciones FP16 FMA por segundo, potencia de procesamiento 4x (solo GA100, 2x en GA10x) en comparación con las generaciones anteriores de Tensor Core; el Tensor Core Count se reduce a uno por SM.
* Núcleos de trazado de rayos de segunda generación; Trazado de rayos, sombreado y cómputo simultáneos para la serie GeForce 30
* Memoria de alto ancho de banda 2 (HBM2) en A100 de 40 GB y A100 de 80 GB
* Memoria GDDR6X para GeForce RTX 3090, RTX 3080 Ti, RTX 3080, RTX 3070 Ti
* Núcleos FP32 dobles por SM en GPU GA10x
* NVLink 3.0 con un rendimiento de 50 Gbit/s por par
* PCI Express 4.0 con soporte SR-IOV (SR-IOV está reservado solo para A100)
* Función de partición de GPU y virtualización de GPU de múltiples instancias (MIG) en A100 que admite hasta siete instancias
* PureVideo conjunto de características K decodificación de video de hardware con decodificación de hardware AV1 para la serie GeForce 30 y conjunto de características J para A100
* 5 NVDEC para A100
* Agrega nueva decodificación JPEG de 5 núcleos basada en hardware (NVJPG) con YUV420, YUV422, YUV444, YUV400, RGBA. No debe confundirse con Nvidia NVJPEG (biblioteca acelerada por GPU para codificación/descodificación de JPEG)

### Chips

* GA100
* GA102
* GA103
* GA104
* GA106
* GA107
Comparación de la capacidad informática: GP100 vs GV100 vs GA100
| Características de la GPU | NVIDIA Tesla P100 | NVIDIA Tesla V100 | NVIDIA A100 |
| Nombre en clave GPU | GP100 | GV100 | GA100 |
| Arquitectura GPU | NVIDIA Pascal | NVIDIA Volta | NVIDIA Ampere |
| Capacidad de cómputo | 6.0 | 7.0 | 8.0 |
| Hilos / urdimbre | 32 | 32 | 32 |
| Deformaciones máximas / SM | 64 | 64 | 64 |
| Max hilos / SM | 2048 | 2048 | 2048 |
| Max bloques de rosca / SM | 32 | 32 | 32 |
| Registros máximos de 32 bits/SM | 65536 | 65536 | 65536 |
| Max registros / bloque | 65536 | 65536 | 65536 |
| Max registros / subproceso | 255 | 255 | 255 |
| Tamaño máximo de bloque de hilo | 1024 | 1024 | 1024 |
| Núcleos FP32 / SM | 64 | 64 | 64 |
| Relación de registros SM a núcleos FP32 | 1024 | 1024 | 1024 |
| Tamaño de memoria compartida/SM | 64 KB | Configurable hasta 96 KB | Configurable hasta 164 KB |
Comparación de matriz de soporte de precisión
| | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones principales de CUDA admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas | Precisiones de núcleo de Tensor admitidas |
| | FP16 | FP32 | FP64 | INT1 | INT4 | INT8 | TF32 | BF16 | FP16 | FP32 | FP64 | INT1 | INT4 | INT8 | TF32 | BF16 |
| NVIDIA Tesla P4 | No | Sí | Sí | No | No | Sí | No | No | No | No | No | No | No | No | No | No |
| NVIDIA P100 | Sí | Sí | Sí | No | No | No | No | No | No | No | No | No | No | No | No | No |
| NVIDIA Volta | Sí | Sí | Sí | No | No | Sí | No | No | Sí | No | No | No | No | No | No | No |
| Nvidia Turing | Sí | Sí | Sí | No | No | Sí | No | No | Sí | No | No | Sí | Sí | Sí | No | No |
| NVIDIA A100 | Sí | Sí | Sí | No | No | Sí | No | Sí | Sí | No | Sí | Sí | Sí | Sí | Sí | Sí |
Leyenda:
* FPnn: coma flotante con nn bits
* INTn: entero con n bits
* INT1: binario
* TF32: TensorFloat32
* BF16: bflotador16
Comparación del rendimiento de decodificación
| Flujos simultáneos | Decodificación H.264 (1080p30) | Decodificación H.265 (HEVC) (1080p30) | Decodificación VP9 (1080p30) |
| V100 | 16 | 22 | 22 |
| A100 | 75 | 157 | 108 |

## Pastillas Ampere

| Pastilla | GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | GA10B | GA10F |
| Tamaño del pastilla | 826 mm$^2$ | 628 mm$^2$ | 496 mm$^2$ | 392 mm$^2$ | 276 mm$^2$ | 200 mm$^2$ | ? | ? |
| Transistores | 54.2MM | 28.3MM | 22MM | 17.4MM | 12MM | 8.7MM | ? | ? |
| Densidad de transistores | 65.6 MTr/mm$^2$ | 45.1 MTr/mm$^2$ | 44.4 MTr/mm$^2$ | 44.4 MTr/mm$^2$ | 43.5 MTr/mm$^2$ | 43.5 MTr/mm$^2$ | ? | ? |
| Clústeres de procesamiento de gráficos (GPC) | 8 | 7 | 6 | 6 | 3 | 2 | 2 | 1 |
| Multiprocesadores de transmisión (SM) | 128 | 84 | 60 | 48 | 30 | 20 | 16 | 12 |
| Núcleos CUDA | 12288 | 10752 | 7680 | 6144 | 3480 | 2560 | 2048 | 1536 |
| Unidades de mapeo de texturas (TMU) | 512 | 336 | 240 | 192 | 120 | 80 | 64 | 48 |
| Unidades de salida de renderizado (ROP) | 192 | 112 | 96 | 96 | 48 | 32 | 32 | 16 |
| Núcleos Tensor | 512 | 336 | 240 | 192 | 120 | 80 | 64 | 48 |
| Núcleos RT | N/A | 84 | 60 | 48 | 30 | 20 | 8 | 12 |
| Caché L1 | 24 MB | 10.5 MB | 7.5 MB | 6 MB | 3 MB | 2.5 MB | 3 MB | ? |
| Caché L1 | 192 KB por SM | 128 KB por SM | 128 KB por SM | 128 KB por SM | 128 KB por SM | 128 KB por SM | 192 KB por SM | ? |
| Caché L2 | 40 MB | 6 MB | 4 MB | 4 MB | 3 MB | 2 MB | 4 MB | ? |

## Acelerador A100 y DGX A100

El acelerador A100 basado en Ampere se anunció y lanzó el 14 de mayo de 2020. El A100 cuenta con 19,5 teraflops de rendimiento FP32, 6912 núcleos CUDA, 40 GB de memoria gráfica y 1,6 TB/s de ancho de banda de memoria gráfica. Inicialmente, el acelerador A100 solo estaba disponible en la tercera generación del servidor DGX, incluidos 8 A100. El DGX A100 también incluye 15 TB de almacenamiento PCIe gen 4 NVMe, dos CPU AMD Rome 7742 de 64 núcleos, 1 TB de RAM e interconexión HDR InfiniBand con tecnología Mellanox. El precio inicial de la DGX A100 fue de $199 000.
Comparación de aceleradores utilizados en DGX:
* Acelerador
* H100
* A100 80 GB
* A100 40 GB
* V100 32 GB
* V100 16 GB
* P100
| Arquitectura | Zócalo | FP32 CUDA Cores | FP64 Cores (excl. Tensor) | Mixed INT32/FP32 Cores | INT32 Cores | Reloj turbo | Reloj de la memoria | Ancho del bus de la memoria | Ancho de banda de la memoria | VRAM | Precisión simple (FP32) | Precisión doble (FP64) | INT8 (non-Tensor) | INT8 Dense Tensor | INT32 | FP16 | FP16 Dense Tensor | bfloat16 Dense Tensor | TensorFloat-32 (TF32) Dense Tensor | FP64 Dense Tensor | Interconnect (NVLink) | GPU | Tamaño de caché L1 | Tamaño de caché L2 | TDP | Tamaño del chip GPU | Transistores | Proceso de fabricación |
| Hopper | SXM5 | 16896 | 4608 | 16896 | N/A | 1780 MHz | 4.8Gbit/s HBM3 | 5120-bit | 3072 GB/sec | 80 GB | 60 TFLOPs | 30 TFLOPs | N/A | 4000 TOPs | N/A | N/A | 2000 TFLOPs | 2000 TFLOPs | 1000 TFLOPs | 60 TFLOPs | 900 GB/sec | GH100 | 25344 KB (192 KBx132) | 51200 KB | 700 W | 814 mm$^2$ | 80 000 millones | TSMC 4 nm N4 |
| Ampere | SXM4 | 6912 | 3456 | 6912 | N/A | 1410 MHz | 3.2 Gbit/s HBM2 | 5120-bit | 2039 GB/sec | 80 GB | 19.5 TFLOPs | 9.7 TFLOPs | N/A | 624 TOPs | 19.5 TOPs | 78 TFLOPs | 312 TFLOPs | 312 TFLOPs | 156 TFLOPs | 19.5 TFLOPs | 600 GB/s | GA100 | 20736 KB (192 KBx108) | 40960 KB | 400 W | 826 mm$^2$ | 54 200 millones | TSMC 7 nm N7 |
| Ampere | SXM4 | 6912 | 3456 | 6912 | N/A | 1410 MHz | 2.4Gbit/s HBM2 | 5120-bit | 1555 GB/s | 40 GB | 19.5 TFLOPs | 9.7 TFLOPs | N/A | 624 TOPs | 19.5 TOPs | 78 TFLOPs | 312 TFLOPs | 312 TFLOPs | 156 TFLOPs | 19.5 TFLOPs | 600 GB/sec | GA100 | 20736 KB (192 KBx108) | 40960 KB | 400 W | 826 mm$^2$ | 54 200 millones | TSMC 7 nm N7 |
| Volta | SXM3 | 5120 | 2560 | N/A | 5120 | 1530 MHz | 1.75 Gbit/s HBM2 | 4096-bit | 900 GB/sec | 32 GB | 15.7 TFLOPs | 7.8 TFLOPs | 62 TOPs | N/A | 15.7 TOPs | 31.4 TFLOPs | 125 TFLOPs | N/A | N/A | N/A | 300 GB/sec | GV100 | 10240 KB (128 KBx80) | 6144 KB | 350 W | 815 mm$^2$ | 21 100 millones | TSMC 12 nm FFN |
| Volta | SXM2 | 5120 | 2560 | N/A | 5120 | 1530 MHz | 1.75 Gbit/s HBM2 | 4096-bit | 900 GB/sec | 16 GB | 15.7 TFLOPs | 7.8 TFLOPs | 62 TOPs | N/A | 15.7 TOPs | 31.4 TFLOPs | 125 TFLOPs | N/A | N/A | N/A | 300 GB/sec | GV100 | 10240 KB (128 KBx80) | 6144 KB | 300 W | 815 mm$^2$ | 21 100 millones | TSMC 12 nm FFN |
| Pascal | SXM/SXM2 | N/A | 1792 | 3584 | N/A | 1480 MHz | 1.4 Gbit/s HBM2 | 4096-bit | 720 GB/sec | 16 GB | 10.6 TFLOPs | 5.3 TFLOPs | N/A | N/A | N/A | 21.2 TFLOPs | N/A | N/A | N/A | N/A | 160 GB/sec | GP100 | 1344 KB (24 KBx56) | 4096 KB | 300 W | 610 mm$^2$ | 15 300 millones | TSMC 16 nm FinFET+ |

## Productos que utilizan Ampere

* Serie GeForce MX
** GeForce MX570 (móvil) (GA107)
* Serie GeForce 20
** GeForce RTX 2050 (móvil) (GA107)
* Serie GeForce 30
** GeForce RTX 3050 (móvil) (GA107)
** GeForce RTX 3050 (GA106 o GA107)
** GeForce RTX 3050 Ti (móvil) (GA107)
** GeForce RTX 3060 (móvil) (GA106)
** GeForce RTX 3060 (GA106 o GA104)
** GeForce RTX 3060 Ti (GA104 o GA103)
** GeForce RTX 3070 (móvil) (GA104)
** GeForce RTX 3070 (GA104)
** GeForce RTX 3070 Ti (móvil) (GA104)
** GeForce RTX 3070 Ti (GA104)
** GeForce RTX 3080 (móvil) (GA104)
** GeForce RTX 3080 (GA102)
** GeForce RTX 3080 12GB (GA102)
** GeForce RTX 3080 Ti (móvil) (GA103)
** GeForce RTX 3080 Ti (GA102)
** GeForce RTX 3090 (GA102)
** GeForce RTX 3090 Ti (GA102)
* GPU Nvidia Workstation (anteriormente Quadro)
** RTX A2000 (móvil) (GA107)
** RTX A2000 (GA106)
** RTX A3000 (móvil) (GA104)
** RTX A4000 (móvil) (GA104)
** RTX A4000 (GA104)
** RTX A4500 (GA102)
** RTX A5000 (móvil) (GA104)
** RTX A5000 (GA102)
** RTX A5500 (GA102)
** RTX A6000 (GA102)
* GPU Nvidia Data Center (anteriormente Tesla)
** Nvidia A2 (GA107)
** Nvidia A10 (GA102)
** Nvidia A16 (4 × GA107)
** Nvidia A30 (GA100)
** Nvidia A40 (GA102)
** Nvidia A100 (GA100)
** Nvidia A100 80 GB (GA100)
Productos que utilizan Ampere (por chip) :
| | GA107 | GA106 | GA104 | GA103 | GA102 | GA100 |
| Serie GeForce MX | GeForce MX570 (móvil) | N/A | N/A | N/A | N/A | N/A |
| Serie GeForce 20 | GeForce RTX 2050 (móvil) | N/A | N/A | N/A | N/A | N/A |
| Serie GeForce 30 | GeForce RTX 3050 (móvil) GeForce RTX 3050 GeForce RTX 3050 Ti (móvil) | GeForce RTX 3050 GeForce RTX 3060 (móvil) GeForce RTX 3060 | GeForce RTX 3060 GeForce RTX 3060 Ti GeForce RTX 3070 (móvil) GeForce RTX 3070 GeForce RTX 3070 Ti (móvil) GeForce RTX 3070 Ti GeForce RTX 3080 (móvil) | GeForce RTX 3060 Ti GeForce RTX 3080 Ti (móvil) | GeForce RTX 3080 GeForce RTX 3080 Ti GeForce RTX 3090 GeForce RTX 3090 Ti | N/A |
| GPU Nvidia Workstation | RTX A2000 (móvil) | RTX A2000 | RTX A3000 (móvil) RTX A4000 (móvil) RTX A4000 RTX A5000 (móvil) | N/A | RTX A4500 RTX A5000 RTX A5500 RTX A6000 | N/A |
| GPU Nvidia Data Center | Nvidia A2 Nvidia A16 | N/A | N/A | N/A | Nvidia A10 Nvidia A40 | Nvidia A30 Nvidia A100 |