毕竟是享有IEEE这响亮品牌“加持”的研讨会,加上坐在台下的听众多半又不是呆头呆脑的“诸多媒体先进”,诸多在Hot Chips趁机宣扬国威并现场隔空较劲的芯片厂商,多半都会讲些和技术行销简报“很不一样”的深度内容。
NVIDIA这次公布了“人工智能最佳化”GPU微架构Volta (GV100) 的执行单元细节,颇有看头,平日很难得看到绘图芯片厂商愿意打开“黑盒子”给大家品头论足,尤其是扮演着GPU关键灵魂,也就是NVIDIA从Fermi一路改名SM SMX SMM再改回SM的“多执行绪SIMD (或SIMT) 处理器”,过去大家都在乱猜一通,现在总算有机会一窥其庐山真面目。
“分而治之”的NVIDIA产品发展策略
如果今天要笔者马上评论“为何NVIDIA可以在高阶绘图市场压倒AMD”,唯一可勉强挤出的大概也只有一句话:NVIDIA集中足够的资源,采取分散风险的多样化产品研发计划,而不像同时经营CPU GPU两条战线、蜡烛两头烧的AMD,被迫鸡蛋都放在同一个篮子内。
在2013年的NVIDIA时程表,原本Maxwell要直接演进到Volta。
但2014年,在Volta前就多出一个Pascal了。
所以2016年“汎用”的Pascal,2017年“专用”的Volta,打破了NVIDIA两年推出一个崭新微架构的节奏,搞不好NVIDIA以后的“钟摆”就以一年为期,也说不定。
以事后诸葛的角度回顾NVIDIA“小步快跑”的决定,一点都不让人感到意外,因为Volta的确是NVIDIA史上第一个真正针对人工智能量身订做、兼顾“学习 / 训练”与“推论 / 预测”的微架构。
逐步深入、抽丝剥茧Volta微架构的SM细节
Volta的单一SM规划和“前前代”Maxwell雷同,切成四块“次核心 (Sub-Core)”。其实图中少画了载入储存单元,但好像也无关紧要了。
四块次核心共用L1指令快取、L1资料快取 (与材质和区域共享内存共用128kB容量,NVIDIA宣称这样比较有弹性)、与芯片共用的内存子系统 (6MB第二阶快取和12GB HBM2主内存)。
每个次核心单一时脉执行一个由32执行绪组成的“Warp”,想的简单一点,一个Warp就代表画面上的一个小方格。
次核心内的执行单元就是重头戏了,Volta包含五种截然不同的独立运算功能,这让它能够在众多GPU中鹤立鸡群。
- 32位元浮点 (FP32):16组,“CUDA Core”的同义词,如执行16位元半精度,输出率将会倍增。
- 特殊运算 (MUFU):4组,特殊功能单元,负责平方根、倒数、sine 和 cosine 等三角函数。
- 64位元浮点 (FP64):8组,高效能运算必备品,消费市场就阉割或著根本看不到。
- 整数运算 (INT):16组,人工智能一定用得到,看看Google第一代TPU就知道了。
- 张量运算核心 (Tensor Core):2组,执行4x4 16位元浮点乘积和,适用于特征辨识的卷积运算 (Convolutional Neural Network,CNN)。
值得注意的是,为了确保执行单元随时有指令可跑,次核心具备“L0”指令快取。
一颗GV100有640个Tensor Core:每个次核心2个 x 4个次核心 x 80个SM = 640个。
可理可证,GV100有5120个CUDA core,Fermi完全体GF110的整整“十倍”,时间过得真快。
最后,也是最重要的,Volta可实现更精细的执行绪执行资源管理,每个Warp的32执行绪,都有其个别独立的程式计数器 (Program Counter),更利于多工与虚拟化应用。
无所不备则无所不寡
Volta (GV100) 这些补强,特别像独立的64位元浮点单元、独立的整数运算单元、与为了强化推论 (Inference) 而生的16位元浮点乘积和张量 (Tensor) 运算单元“Tensor Core”,都是对一般游戏娱乐或高效能运算而言,敬谢不敏的化外之民,即使Pascal后期型号 (GP102 / GP104 / GP106) 也追加了对8位元短整数的支援性,但仍看不到Volta的车尾灯,而那时的AMD,大概只能仆在马路上,背后深深烙印着两条被NVIDIA活活辗过的轮胎痕。
同样的“分工”精神,也早已成为NVIDIA自“让GPU更接近汎用CPU”的Fermi微架构为起点,产品规划的重要特色:具备高效能64位元浮点运算的高阶应用,都会有专属的大型化晶粒,像GF100、GF110、GK110、GK210、GP100、GV100等 (Maxwell世代没这样搞,算是特例),以免消费市场压根儿不需要的“外挂”,伤害产品竞争力,如不必要的多余制造成本与耗电量等。
很不幸的,就刚好就是AMD的弱点,想要单一设计面面俱到,下场就是两边都顾不到,Vega就是很好的血淋淋例证。疑?怎么又让笔者想起Fusion了?






























