GF100针对中端用户优化而得GF104
我们可以发现显卡历代产品均是率先发布采用相同核心的最高端系列产品,然后根据最高端系列核心的架构然后缩减规格设计出原生的中端、低端等核心。例如AMD当前主流的Radeon HD 5000系列产品,其最高端核心RV870、中端核心为RV840,二者的关系就可以看做是RV870的规格减半,理论架构无需改变,这样可以获得最短的开发周期。
那么NVIDIA的GF100和GF104核心也是经过这样的“处理”而得到的吗?
答案自然是否定的。虽然GF100和GF104核心均是基于Fermi架构设计,但是NVIDIA工程师不遗余力的挖掘Fermi架构潜能,GF100和GF104的内部微架构各处理单元做了比例调整。这样的设计好处就是不同规格的核心拥有最佳的功能单元比例,从而获得更佳的性能表现。
GF100 vs. GF104核心架构图对比
从两张架构图对比来看,GF104看似就是GF100的打对折后的作品。不过细心的读者肯定会发现,两颗核心架构图中SM(为Streaming Multiprocessors缩写)的含有CUDA Core数量不同,更多的功能单元模块数量比也有很大差异,这也就意味着GF104核心的并非GF100简单缩减50%而来,同时由于微架构功能单元模块比例的调整,性能方面差距值得我们去详细测试。
两 款 Fermi 架 构 核 心 全 规 格 对 比 | |||
Graphics Core | Graphics Core | GF100 | GF104 |
Processing Units | Graphics Processing Clusters | 4 | 2 |
Streaming Multiprocessors | 16 | 8 | |
CUDA Cores | 512 | 384 | |
Texture Units | 64 | 64 | |
ROP Units | 48 | 32 | |
Other | Memory Interface | 384-bit | 256-bit |
L1 Cache | 64 KB (16 KB + 48 KB) |
64 KB (16 KB + 48 KB) | |
L2 Cache | 768 KB | 512 KB | |
Warp | 32 | 16 | |
Memory Controller | 64bit *6 | 64bit *4 |
这是GF100核心和GF104核心的硬件规格对比。在此,值得一提的是目前使用GF100核心最高型号的GeForce GTX 480,众所周知并非使用全规格的GF100核心,而是屏蔽一组SM而来。无独有偶GeForce GTX 460亦是如此,它也并没有使用全规格的GF104核心,同样是被屏蔽了一组SM。
抛开实际发布产品的规格,我们来看下理论上GF100和GF104的满规格参数对比。在GPC和SM的数量上GF104确实仅为GF100的一半,但是通过CUDA Cores和SM数量可以计算出,GF100的每组SM拥有32个CUDA Cores,而GF104的每组SM拥有48个CUDA Cores;而在每组SM的纹理单元数量上,GF100拥有4个,GF104则升级为8个。当然功能单元的比例变化不仅仅如此,我们会在下面的章节做简介。
在GF100中拥有4个GPC(Graphics Processing Clusters)、16个SM(Streaming Multiprocessors)和6个MC(Memory Controller),而在GF104核心中则是2个GPC(Graphics Processing Clusters)、8个SM(Streaming Multiprocessors)和4个MC(Memory Controller)。
Fermi架构的GPU工作流程为CPU将命令通过Host Interface总线接口传输到GPU中,然后GigaThread线程控制器会从系统内存提取指定数据,并把它们拷贝到指定的显存中。然后GigaThread引擎创建并调度这些block到各个SM,其次再到warp交给CUDA Core和其他执行单位。在GigaThread引擎重新分配工作时,图形流水线上的各个单元如细分曲面和光栅化之类的单元也会继续工作。
● SM功能单元比例大调整
不过笔者在此要说的是,之所以GF104要另辟蹊径的修正SM微架构功能单元模块比例,而非简单缩减GF100的SM模块,这是因为对于高规格的GF100来说第一代Fermi架构微架构的SM功能单元模块比例是最佳的,能够发挥GF100最优性能的。但是对于GF104来说却不一定,因为GF104是NVIDIA针对大众用户设计、是针对游戏设计,GF100的SM功能模块比例不再适用,经过NVIDIA工程师在仿真机上的无数次修正、调试后得到了我们现在看到的GF104 SM功能模块比例。
GF104的一个SM中现在拥有48个CUDA Core,每个CUDA Core由两个Dispatch Port、Operand Collector、Result Queue以及INT整型数单元与FP浮点数单元构成。其中GF104的ALU和FPU均继承了GF100中CUDA Core的优良特性,例如ALI可以支持64bit精度指令运算,还有比较、布尔和移位等指令计算,值得一提的是Fermi架构的ALU通过改进现已完整支持32bit整数算法。同时FPU支持IEEE 754-2008标准,这一切一切的改变和支持都为Fermi架构在GPU通用计算上打下坚实基础。
当然,在CUDA Core的优化上可以大幅提升GPU运算能力,但是没有良好的缓存设计及读写机制也无法发挥GPU的能力。在GF104的每个SM中与GF100一样,都包含LD/ST Cache、L1 Cache、Uniform Cache和Texture Cache。其中GF104拥有12KB的L1纹理缓存之外,还拥有真正意义的L1 Cache和L2 Cche可读写缓存。就每组SM而言,每组SM拥有8个纹理单元共享12KB的L1纹理缓存,32个CUDA Core使用16KB L1缓存搭配48KB共享缓存或48KB L1缓存搭配16KB共享缓存两种组合,最后还有768KB超大L2缓存。
GF100 SM vs. GF104 SM | |||
Graphics Core | Graphics Core | GF100 | GF104 |
SM | CUDA Cores | 32 | 48 |
Warp Scheduler | 2 | 2 | |
Dispatch Unit | 2 | 4 | |
SFU | 4 | 8 | |
LD/ST | 16 个 | 16 个 | |
INT Unit | 32 | 48 | |
FP Unit | FP32:32 FP64:16 |
FP32:48 FP64:24 | |
Texture Unit | 4 | 8 |
介绍完Fermi架构中SM的优化运算机制后,看下GF100和GF104中分别SM拥有功能模块的比例。抛开GF100和GF104的整体规格不看单比SM规格,GF104 SM的功能模块数量相比GF100 SM的功能模块数量只多不少,也就是说GF104单个SM的性能要强于GF100单个SM。
我们可以看到每个SM中CUDA Core数量和Texture Unit数量均有大幅增加,这都会增加SM的3D计算能力,从而让用户在游戏体验上获得更好的效果。不过相反每个CUDA Core和Texture Unit分得的各类Cache有所减少,这应该是NVIDIA GPU架构工程师在性能、晶体管平衡取舍上得出的比例。
- 第1页:Fermi二代 GTX460欲夺千元市场
- 第2页:专为游戏打造 Fermi第二代GF104
- 第3页:GF100针对中端用户优化而得GF104
- 第4页:显存规格详解 揭秘核心代号KA含义
- 第5页:拆解GTX460 纤细身材提供强大性能
- 第6页:低热低功耗 再也无需大块头散热器
- 第7页:GTX460轻松易超频 性能紧追GTX480
- 第8页:测试平台硬件及软件环境简介
- 第9页:理论性能测试-3DMark 06
- 第10页:理论性能测试-3DMark Vantage
- 第11页:DX9.0c游戏-街头霸王4
- 第12页:DX10游戏-英雄连之前线
- 第13页:DX10游戏-孤岛危机
- 第14页:DX11游戏-异形大战铁血战士
- 第15页:DX11游戏-战地之叛逆连队2
- 第16页:DX11游戏-科林麦克雷之尘埃2
- 第17页:DX11游戏-地铁2033
- 第18页:DX11游戏-潜行者之普利皮亚召唤
- 第19页:Tessellation测试-天堂2.1
- 第20页:Tessellation测试-石巨人
- 第21页:Tessellation测试-Sub11
- 第22页:PhysX游戏-蝙蝠侠之阿卡姆疯人院
- 第23页:PhysX游戏-镜之边缘
- 第24页:GPU通用机算-Media Coder NT
- 第25页:应用测试-系统功耗检测
- 第26页:应用测试-产品温度检测
- 第27页:应用测试-产品噪音检测
- 第28页:1千至3千通杀 GTX460性价比胜出
- 第29页:GTX460首发测试产品展示(1)
- 第30页:GTX460首发测试产品展示(2)