开普勒(Kepler)是英伟达在2012年4月发布的圖形處理器微架构的代号,是費米架构的继承者。Kepler是英伟达第一款专注于节能的微架构。大多数GeForce 600 系列、GeForce 700 系列和部分GeForce 800 系列显卡基于Kepler架构,均使用28纳米制程。Kepler架构也应用于Tegra K1 SOC上的图形处理器GK20A以及NVIDIA Quadro Kxxxx系列显卡、Quadro NVS 510显卡和NVIDIA Tesla计算卡。Kepler的后继者为麥斯維爾,并且和Maxwell架构一并用于GeForce 700 系列和GeForce 800 系列显卡。
Kepler架构的命名来自17世纪科学革命使其的著名德国数学家约翰内斯·开普勒(Johannes Kepler)。
概览
在Kepler的前一代架构Fermi中,英伟达主要专注于提升计算与曲面细分的性能。然而在Kepler架构中,英伟达转向了提升效率、可编程性与性能。 效率的提升来自采用了统一的GPU时钟、简化的静态指令调度和更加优化的每瓦性能。 尽管废弃过去GPU中采用的着色器时钟需要额外的核心来达到高性能,但通过这么做依然得以使效率提升。这不仅是因为新的核心更加节能(根据英伟达的数据,两个Kepler核心的功耗相当于一个Fermi核心的功耗的90%),同时也是因为统一GPU时钟使得这部分的功耗降低了50%。
可编程性是通过引进Hyper-Q技术、动态并行和多个新的Compute Capabilities 3.x功能实现的。通过这些改进使得在GK系列GPU中实现GPU的高利用率和简化的代码管理,从而使得针对Kepler系列GPU的编程更加灵活。
在性能上,额外的执行资源(更多的CUDA核心、寄存器和缓存)以及Kepler架构支持的6 GHz内存速度使得Kepler架构的性能较过去的英伟达GPU显著增强。 专用的双精度CUDA核心被用来弥补Kepler CUDA核心为了节省芯片面积而放弃的双精度计算能力。英伟达在SMX上做的改进带来了GPU在性能和效率上的提升。GK110上的48KB材质缓存可被用于计算负载。在计算负载中,材质缓存变为了一个只读数据缓存,专供非对齐的内存访问负载使用。同时,错误纠正功能也使得需要ECC的负载能更加安全地运行。在GK110中每个线程的寄存器数也翻倍到了255个。
简化指令调度器
额外的芯片面积是通过将复杂的硬件调度器简化为软件调度器带来的。通过软件调度,wraps的调度被放在了编译阶段。同时因为简化后GPU的计算流水线的延迟固定,英伟达在线程级并行之外也实现了指令级并行。由于指令是被静态调度的,通过采用固定延迟的指令可以实现一致性,且静态调度的编译器降低了一层复杂度。
GPU Boost
GPU Boost是一个基本类似于CPU睿频的新技术。GPU总是能以一个最低的频率运行,称之为“基础频率”。这个频率是通过测试在最高负载下也能保持在TDP以内的方法得出的。 然而以下“Modern UI” Direct3D 11.1功能并不被支持:
- 目标独立光栅化(仅限2D渲染)
- 16xMSAA光栅化(仅限2D渲染)
- 正交线渲染模式
- 非像素着色阶段的UAV(Unordered Access View)
根据微软的定义,Direct3D feature level 11_1必须完备,否则无法执行Direct3D 11.1
Kepler架构内置的Direct3D功能和采用Fermi架构的GeForce 400系列显卡一致
TXAA支持
TXAA是英伟达设计的新的抗锯齿技术,需要游戏引擎直接实现在其中,且仅限于Kepler系列GPU。TXAA基于多重采样抗锯齿和定制的滤镜。TXAA被用来解决一个游戏中的关键问题:闪烁或temporal aliasing。TXAA通过柔化动态场景来确保游戏内的场景不包含任何的锯齿和闪烁。
Hyper-Q
Hyper-Q将GK110的硬件工作队列从原本的唯一一个提升到32个。在Fermi架构中,有时唯一的工作队列被占据时工作量其实并不够让每个流处理器都有工作。而拥有32个工作队列,GK110在很多情形下可以使得原本空闲的SMX工作起来从而达到更高的利用率。Hyper-Q的这种特质还因为它能够被更轻易地映射到MPI——一个常见的在高性能计算中使用的通讯接口——而被进一步增强。传统的为多个处理器系统设计的基于MPI的算法所面临的错误依赖问题通过Hyper-Q得到了解决。通过增加MPI工作的数量,程序员将可以在不修改代码的情况下应用Hyper-Q来提升算法性能。 这项技术同时减轻了对系统内存带宽的需求,并且使得GPU的DMA能够空闲出来来执行其他CUDA任务。基于Kepler架构的GK110还支持包括P2P和GPUDirect for Video等GPUDirect功能。
视频解码/编码
NVDEC
NVENC
NVENC时英伟达的高效率固定编码引擎,能够解码、预处理和编码H.264内容。NVENC的输入编码仅限于H.264。然而弥补这块短板的是NVENC可以编码4096x4096的内容。
如同Intel的Quick Sync技术,NVENC的使用需要用到专有的API。然而英伟达并没有计划提供在CUDA内调用NVENC的方法。 GK10x的双精度浮点性能也被类似地限制到了单精度浮点性能的1/24。
基于Kepler架构的芯片
- GK104
- GK106
- GK107
- GK110
- GK208
- GK210
- GK20A (图睿)
注释
参见
- NVIDIA显示核心列表
参考文献
评论 (0)