讲到这里,不得不提一下 Nvidia 的起名,那也是一种境界。比如说线程吧,好好的 thread 的不叫,要叫 warp。如果各位硅工辅修一门「羊毛衫针织技术」课的就会理解这个名字精妙所在,上图是 google image 搜出来的 thread 和 warp。Thread 是单一没有规律的线,而 warp 是针织后多条并线错落有致的线。Warp 可以形象地体现 GPU 中每个线程的并行性和交替活跃的特征。可惜,大部分硅工连 warp 可以作名词都不知道。另外,NV 还把一个上述的并行的单元处理器叫做 streaming multiprocessor。对,简写就是那个五十度灰里羞羞的 SM,看 GPU 的文章时,一定不要对四处飞的 SM 想太多哦。 时间上,一个可能的 SM 处理的操作如下图所示。通过 Warp Scheduler, 每个对应的 cuda core 将在不同的 thread 间跳跃以达到性能的最优值,同时成功地掩护处理器对存储器里所需数据的访问时间。 从费米到帕斯卡:泰坦之父们 希腊神话里面,泰坦们是天神 Uranus 和地神的 Gaia 的后代,是奥林匹斯众神(宙斯等)的父辈。然而,在 GPU 的世界里,泰坦之父却要贡献给这四个名字: Fermi / Kepler / Maxwell / Pascal
这 4 位鼎鼎大名的先贤(不认识的请自行回去打屁股)又和 GPU 有什么关系呢?这又要归结到 Nvidia 牛逼的起名学了。10 年以前,专用图像处理芯片都叫做「显卡」(Graphics Card)。但 2008 年的时候,多家公司决定给他一个高霸上的名字——「图像处理单元」(Graphic Processing Unit, GPU)。Nvidia 从那时起,给每一代自己的图像处理芯片都冠一个牛逼哄哄的干爹姓。第一任干爹就是大名鼎鼎的核物理学家——Enrico Fermi。其实,fermi 前还有个,叫 tesla 姓,但是现在 tesla 已经被 NV 作为一个产品线名字了。就这样,GPU 以两年一代的速度,不断进取,如今已经发展到 Pascal 代。在今年刚过去的 CES,下一代架构 Volta 的样机已经出现了,集成在 xaiver 平台上。(请参考《矽说--从芯片核弹到未来平台:从 CES 看 Nvidia 的转型野心》) Titan X 首次亮相时在 Maxwell 时代,目前能买到的新款已经更新到 Pascal。其实,N 家作为卖游戏显卡的主,出的了很多性能超越 Titan 的游戏卡(比如 GTX 1080,游戏跑分基本秒杀 Titan)。但是为啥 Titan X 一直是 AI 加速、特别是 training 的主要硬件外挂呢?有两个重要要原因。 一是,Titian 在单精度模式上拥有长足的优势。单精度指的是 16 位的浮点计算模式(FP16),而日常显卡是为双精度(32 位浮点)甚至更高的 FP64 模式设计的。Data scientist 的经验表明,深度学习往往仅需要单精度即可得到。大家可以从 (A+B)(C+D) = AC+AD+BC+DC 中可以简单地发现,FP32 所需要的硬件代价大约是 FP16 的 4 倍,可以做 FP16 的 Titian X 自然成了 AI 训练的首选。 第二个原因是,Titan 卡上的存储空间(DRAM)是 NV 卡里最高的,达到 12GB。就如本文一开头所述的,离计算单元越近且越大的 Memory 越值钱。这一点在大规模神经网络中尤为有用。多少个矩阵乘就这么避免了被「五马分尸」的命运呢。因此,凭着这 12GB 的显卡内存,Titan 的运行 AI 是对「云深不知处」的主机内存访问又降低了很多。 既然讲到了 GPU RAM,可能会有筒子们问 GPU 是在 GPU 芯片里的还是芯片外的?。答案是两者都是。从 Pascal 架构开始,GPU 所用的 DRAM 不再是与 GPU 分立的单独存储芯片,而采用 2.5D 封装的 HBM 结构,为了更近、更快、更宽(位宽)的访问存储器。详情请参考《矽说-那些年我们追的摩尔定律(二)》 (说了那么多 N 家,最后拿 A 家的 ppt 镇个楼) 「一遇泰坦误终身」介绍了在 GPU 的在 SIMD 基础上的另一绝技——多线程,并且在此基础上义务地给 titan X 神卡做了个软文。可是,难道整个 AI 的硬件就要被黄教主统治了么?其他的硬件机遇在哪里?篇幅有限,且听下回分解。 眼瞅着就要过年了, 这也应该是年前脑芯的最后一更, 小编在这里给大家拜早年了! (责任编辑:本港台直播) |