Maxwell (微架构)

<image>

Maxwell是一个NVIDIA开发的GPU微架构的代号，用以取代Kepler微架构。Maxwell 架构在GeForce 700 系列的后续型号中被引入，并且还用于GeForce 800M 系列、 GeForce 900 系列和Quadro Mxxx 系列，以及部分Jetson产品 (Jetson Nano) 中。

首批基于 Maxwell 的产品是 GeForce GTX 745（OEM）、GeForce GTX 750 和 GeForce GTX 750 Ti。二者均于2014年2月18日发布，芯片代号均为GM107。早期的 GeForce 700 系列 GPU 曾使用代号为 GK1xx 的Kepler芯片。第一代 Maxwell GPU（代号 GM10x）也用于 GeForce 800M 系列和 Quadro Kxxx 系列。第二代基于 Maxwell 的产品于 2014 年 9 月 18 日推出，包括 GeForce GTX 970 和 GeForce GTX 980；随后，于 2015 年 1 月 22 日推出 GeForce GTX 960；于 2015 年 3 月 17 日推出 GeForce GTX Titan X；于 2015 年 6 月 1 日推出 GeForce GTX 980 Ti。最后一款且规格最低的 Maxwell 2.0 卡是 2015 年 8 月 20 日发布的 GTX950。这些 GPU 具有 GM20x 芯片代号。

Maxwell 推出了改进的流处理器 (SM) 设计，提高的电源效率、第六代和第七代 PureVideo HD以及CUDA计算能力 5.2。

该微架构以电磁辐射理论创始人詹姆斯·克拉克·麦克斯韦的名字命名。

Maxwell架构还用于片上系统（SOC）、移动应用处理器Tegra X1。

## 第一代基于麦克斯韦微架构的芯片（GM10x）

<image>

第一代发布的 Maxwell GPU（GM107/GM108）是 GeForce GTX 745、GTX 750/750 Ti、GTX 850M/860M（GM107）和 GeForce 830M/840M（GM108）。这些新芯片很少推出面向消费者的附加功能，因为 NVIDIA 更注重提高 GPU 的电源效率。它们的 L2 缓存从开普勒上的 256 KiB 增加到 2 MiB，从而减少了对内存带宽的需求。因此，内存总线从 Kepler（GK106）上的 192 位减少到 128 位，这减少了芯片面积、成本和功耗。

来自开普勒的 "SMX" 流处理器也被重新设计和分区，并在麦克斯韦微架构中被命名为 "SMM"。warp 调度器的结构继承自开普勒架构，纹理单元和FP64 CUDA核心仍然是共享的，但大多数执行单元的布局进行了分区，使得每个SMM中的 warp 调度器控制一组32个FP32 CUDA核心、一组8个加载/存储单元以及一组8个特殊功能单元。这与开普勒微架构的设计相反，在开普勒微架构中每个SMX有4个调度器，并调度到一个共享的执行单元池。这需要一个SMX范围的交叉开关，使得为了在所有执行单元共享之间而消耗了不必要的功耗。相比较而言，Maxwell架构更具模块化的设计允许更精细和更高效的资源分配，并在工作负载不适合共享资源时节省功耗。NVIDIA声称，一个拥有128个CUDA核心的SMM具有192个CUDA核心SMX 90%的性能，同时效率提高了一倍。此外，每个图形处理集群 (GPC) 在开普勒中最多包含4个SMX单元，而在第一代Maxwell中最多包含5个SMM单元。

GM107 还支持 CUDA 计算能力 5.0，而 GK110/GK208 GPU 为 3.5，GK10x GPU 为 3.0。GK110/GK208 GPU 中的动态并行和 HyperQ 这两个功能也得到了整个 Maxwell 产品线的支持。Maxwell 还提供了针对 32 位整数的本机共享内存原子操作以及本机共享内存 32 位和 64 位比较和交换 (CAS)，可用于实现其他原子功能。

NVIDIA 的视频编码器 NVENC 经过升级，速度比基于 Kepler 的 GPU 快 1.5 到 2 倍，这意味着它可以以六到八倍的播放速度对视频进行编码。NVIDIA 还声称，由于视频解码器缓存和内存效率的提高， PureVideo Feature Set E 视频解码性能提高了 8 到 10 倍。不过，第一代 Maxwell GPU 并不完全支持H.265的硬件解码，而是依赖于硬件解码和软件解码（CPU 解码）的混合。解码视频时，Maxwell GPU 使用新的低功耗状态“GC5”来节省电量。

人们认为 Maxwell GPU 使用的是基于图块的渲染但实际上它们使用的是图块缓存。

自第一代 Maxwell 以来， UEFI 图形输出协议在 NVIDIA GPU 上完全得到支持。

### 对应的芯片代号

- GM107
- GM108

## 第二代麦克斯韦（GM20x）

<image>

第二代 Maxwell GPU 引入了多项新技术：动态超分辨率、第三代增量色彩压缩、多像素编程采样、 NVIDIA VXGI（实时体素全局照明）、 VR Direct、多投影加速、多帧采样抗锯齿 (MFAA) （然而，移除了对覆盖采样抗锯齿 (CSAA) 的支持）和功能级别 12_1 的 Direct3D12 API。还添加了 HDMI 2.0 支持。

ROP 与内存控制器的比例从 8:1 更改为 16:1。然而，GTX 970 中的一些 ROP 通常处于空闲状态，因为启用的 SMM 数量不足，无法为它们提供工作，从而降低了其最大像素填充率。

在第二代 Maxwell GPU 中，负责曲面细分的 Polymorph Engine 升级至 3.0 版本，从而提高了每单元/时钟的曲面细分性能。

第二代 Maxwell 每个 GPC 最多有 4 个 SMM 单元，而之前每个 GPC 有 5 个 SMM 单元。

GM204 支持 CUDA 计算能力 5.2（GM107/GM108 GPU 上为 5.0，GK110/GK208 GPU 上为 3.5，GK10x GPU 上为 3.0）。

GM20x GPU 具有升级的 NVENC，支持 HEVC 编码，并增加了对 1440p/60FPS 和 4K/60FPS 的 H.264 编码分辨率的支持（相比之下，Maxwell 第一代 GM10x GPU 上的 NVENC 仅支持 H.264 1080p/60FPS 编码）。

在接到消费者投诉后， NVIDIA 透露，它们可以禁用单个单元（每个单元包含 256KB 的 L2 缓存和 8 个 ROP），而无需禁用整个内存控制器。这样做的代价是将内存总线分为高速段和低速段，这两个段不能同时进行读取访问，因为管理两个 GDDR5 控制器的 L2/ROP 单元在 GDDR5 控制器之间共享读取返回通道和写入数据总线。这意味着无法同时从两个 GDDR5 控制器读取或同时向两个 GDDR5 控制器写入。它被用于 GeForce GTX 970，其中 3.5 GB 显存被连接在显存总线上高速的 224 位部分，其余的 512 MB 显存被连接在显存总线上低速的 32 位部分。这种 GPU 仅在这两个部分中的一个部分执行读取操作而另一个部分执行写入操作时，才能达到峰值显存带宽。

### 对应的芯片代号

- GM200
- GM204
- GM206

## 性能

Maxwell GPU 的理论单精度处理能力（以FLOPS为单位）计算公式为 2 ×（每个 CUDA 核心每个周期每个 FMA 指令的运算次数）× CUDA 核心数量 × 核心时钟速度（以 Hz 为单位）。

Maxwell GPU 的理论双精度处理能力是单精度性能的 1/32（与上一代Kepler相比，这一性能非常低）。

## 下一代微架构

麦克斯韦的下一代微架构代号为帕斯卡（Pascal）。Pascal 架构的特点是更高带宽的统一内存和支持NVLink。

## 基本资料

- 日语原文：NVIDIA Maxwell
- 发布日期：February 2014
- 制造工艺：TSMC
- 制造工艺：28 nm, 20 nm, 16 nm
- 前任：开普勒
- 继任：帕斯卡