正当AlphaGo 与柯洁等一众中国顶尖围棋高手在乌镇激战正酣之际,计算机体系结构专家王逵在新智元专栏的文章(《CPU和GPU双低效,摩尔定律之后一万倍 ——写于TPU版AlphaGo重出江湖之际》)在专家社群和文章评论区内中引发了热烈的讨论。
-
杨静:关于TPU,这篇阅读最高,没有之一。
-
包云岗:这是我看过的TPU相关文章中写得最好的一篇了,目前没有“之一”
-
方昊:在一堆抄来抄去alphago文章中难得一见的一股清流。
-
Kuhasu:小伙子写的非常清晰!我们对冲基金从8年前就开始使用ASIC进行高频交易,而ASIC在交易领域的实际应用,可以追溯到上世纪九十年代后期。
-
艾娅轩: 体系结构和AI领域的玩家们,不能错过的原创,非AI硬件技术细节稿却深入剖析技术内涵。
-
ljf:一篇文章看懂一个领域
但对于文章认为TPU代表了未来发展方向这一观点,很多读者提出了自己的看法。为此,新智元也采访了原作者王逵博士。
唐杉:我们在一个芯片项目中各个任务需要的投入(cost),其中最大的部分是Software,Verification和Validation。而Architecture设计只占其中的很小一部分。这个比例和目前大多数芯片厂商的人员配置也是基本相符的。形成这种趋势,是因为现在的芯片往往只是一个复杂系统中的一部分。芯片设计厂商(或者方案商)提供给客户的已经远远不止芯片本身,而是一套完整的软硬件解决方案。Nvidia在Deep learning上的巨大成功,是归功于它的芯片底层硬件架构,还是它完善的软硬件生态呢?当然是后者。Google之所以敢于和能够自己设计TPU芯片,是和Tensorflow布局和以及data center方面的经验分不开的。绝大多数deep learning用户看到的是Tensorflow(或者其它训练框架)和CUDA,而不是底层硬件(只要硬件别太昂贵)。
孙治平:对于一个AI芯片项目来说,考虑整个软硬件生态,要比底层硬件架构的设计重要得多,最终给用户提供一个好用的解决方案,才是王道。
朱晶:做AI ASIC 拿架构说是竞争力的可能还是有不小风险,这玩意儿还得看完整生态。
王逵:我非常同意唐杉博士的观点,生态才是王道。任何一次芯片架构的革命,都和软件分不开。当年各种RISC架构如同雨后春笋般涌现,很重要的推动力就是Unix操作系统和C语言编译器的成熟,有了它们,操作系统和应用程序才能非常低成本地移植到新CPU上。如今各种深度学习的框架就如同Unix,XLA这样的中间层表示就如同C语言。它们有了开源的成熟方案之后,专用芯片的生态问题会得到极大的缓解。
陈怡然:(这篇文章)观点还是很独特的。不过我觉得TPU本质上其实就是ASIC,和以前的DSP专用芯片刚开始的出发点类似。如果说不同,可能面临的商业应用更广阔。但最后一定会在通用性和性能之间再次平衡。问题的关键不在技术本身,在于找到最佳平衡点。
蒋纯 :这个ASIC更准确应该叫DSA吧
周枫:写得浅显易懂,对技术介绍得不错。但是ASIC最靠谱的结论不同意,更有可能是ASIC是跑车,满足特殊需求,GPU才是支持产业的乘用小车,量最大,通用性最好。规模Volume这个东西是决定性的,而优势都在GPU这边。看今明年Intel出招吧。
Yubo : ASIC快于通用处理器是自然的,代价就是应用太过于局限,就通用和性能之间的平衡还是GPU做得比较到位。
Qianlong :大家一致叫好,我来说点不一样的。ASIC不是谁想玩就能玩的,Google敢玩是受够了公司后又挖包括Patterson等牛人,有大量资金做支撑。另一个原因是投入产出比,对他们来讲可以保证自己做完自己用。但是如果给第三方企业用,迭代成本是企业的命脉。买gpu和买asic做AI投入产出比到底谁更好?AI发展这么快,鬼知道算法会不会半年后就淘汰?专用的一定比通用的快是一定的,但发展前景不好说,体系结构领域很多款抛弃历史包袱的CPU都失败了已经说明了这一点。有企业有勇气做拓路人值得肯定,真心希望能成功!
AHE :神经网络的进化速度非常快,除了TensorFlow还有其它的框架都在进化。相信TensorFlow不久就会有新的算法升级。专用的ASIC TPU能兼容吗?
王逵:专用芯片到底能出多大的量?这个量能不能摊平流片的巨大成本?这是最核心的两个问题。
首先,我内心里不认为TPU是ASIC,更合适的词是DSA(Domain-Specific-Architecture),前者加速某一项功能,后者加速某一类功能。上篇文章篇幅所限,没有引入DSA的概念。为了能上到足够大的量,设计DSA必须要避免“半年后就淘汰”,这就是考验设计功力的地方。
其次,TPU的确只能在DeepLearning这个市场抢GPU的饭碗,但未来这个市场会非常庞大,甚至超过Graphic。当年Google用MapReduce引爆大数据,并没有为此做芯片,后来学术圈也出了不少加速大数据分析的DSA,Google完全无视;这次AI火爆,它火速做了DSA,为什么?就是看到了量。
最后, 做芯片的成本没有大家想的那么大,芯片设计的方法学始终在进步。
有一位朋友讲他十几年前在硅谷初创公司的经历,做世界第一款万兆网交换芯片,每次ASIC spin,代价都是几百万美金,烧了5亿美金产品才最终成熟稳定。如今因为EDA工具的发展和设计流程的进化,绝大多数成熟的IC设计企业都可以做到一次成功。加上28/22nm工艺还在持续减价中。其实如今做芯片的门槛在逐步降低。
ep running : CPU和GPU“低效”的症结并不是什么新闻,为了“通用”“权衡”不得已而为之,专用芯片比CPU高效也人尽皆知,google做了一款人工智能方面的专用加速芯片和博通一直在推出的专用交换芯片没有什么本质区别,为啥会感概?通用核心与存储接口之间的效率问题还是没有看到被根本解决呀?除了是一款人工智能芯片外,google真正的突破和革命在哪里?。
jiakai :并没有解释出tpu相对gpu有什么优势。后者面临的计算访存瓶颈问题前者同样面临
王逵:其实文中已经提到了怎么解决访存瓶颈问题。因为“Tensor的流动非常规整且可预期;计算密度很高,即每个数据都会历经非常多次的计算”,所以“不对其上运行的数十万个小程序做限制”是低效的。至于说怎么做才是高效的,有很多论文都在讲,科普小文就不展开了。
刘丹丹 : FPGA注定沦为炮灰,CPU,GPU垄断地位摇摇欲坠,是不是很多程序员和fpga工程师工作限制越来越大了……
张佺: 优化是市场需求,革新才是发展王道! 感觉现在国内好多人都在折腾FPGA,希望大家能有所觉醒吧!
晓冬:反而觉得FPGA的时代早晚会来临。比如无人驾驶,用GPU的话能接受那种功耗吗?起码低碳环保主义者不会买单。无人车不是手机,不会用两年就换代,从功能升级的角度来看ASIC又远不如FPGA。如果TPU能够满足较低的功耗与较高的灵活性,那恐怕不止Nvidia、Intel、Qualcomm,Xilinx也会慌吧。
王逵:只要有足够的量,FPGA就不如DSA&ASIC。引用我的一位老师的话:FPGA确实频率低、功耗高。量大ASIC,量小FPGA,不着急ASIC,快速部署FPGA,硬件不变ASIC,硬件重构FPGA。而今已经是,有钱ASIC,没钱FPGA。
但FPGA的价值不能被否定,做FPGA非常有前途,例如上文提到的,大数据分析的加速。
谢源:CPU和GPU都是通用架构,而TPU则是针对神经网络的专用架构,不具有通用性。对于工艺进步(technology scaling)与体系架构(computer architecture)对通用处理器发展历史上所做的贡献谁更大的分析,详细可参斯坦福大学Mark Horowitz教授团队的文章“CPU DB: Recording Microprocessor History” 文章链接http://queue.acm.org/detail.cfm?id=2181798
在过去几十年历史上,工艺的进步和体系结构的贡献是基本相同的。所以前面有人提“体系结构的性能提升很有限,你可以通过工艺改进轻轻松松获得一倍以上的性能提升”,是不对的。而且工艺进步和架构创新是相互影响相互作用的。TPU架构的设计者,Norm Jouppi,早在1991年就明确在一篇经典文章“Computer Technology and Architecture: An Evolving Interaction” 中指出了这两者的关系。(文章链接http://dl.acm.org/citation.cfm?id=125812 ) 。而体系结构的创新也和新应用相互作用相互影响。比如这一波AI的热潮,很重要的一个因素是CPU/GPU的计算能力的极大提升。同时AI的应用,也推动了针对神经网络的专用架构的研究,包括TPU这样的新架构。所以,新工艺,新应用,和新的体系结构,是相互作用相互影响的。两周前我在ChinaSys的一个keynote, “Technology-Drive and Application-Driven Architecture Innovation”,就详细解释了这样一个观点。(链接:http://www.ece.ucsb.edu/~yuanxie/ChinaSys2017.pdf)
陈天石:没有合适的结构和软硬件间合理的映射,堆再多mac也是空的,效率上不去。这就类似于说,盖出新的举世无双的建筑,到底是设计师图纸重要还是砖块重要。其实两者是不能割裂的。没有这些大师和研发人员,通用处理器根本做不出来。这些漂亮的工作,都是体系结构的贡献。我不认为有了砖就一定有好的结构。建筑为例,不同的设计师做的东西就是不同的。在体系结构领域,通用和专用的讨论每隔一段时间就会交替地热起来,类似正弦曲线。如果摩尔定理接近终结,正弦曲线可能在专用这块拉到顶了。所谓应用驱动,并不改变体系结构学科的重要性,改变的仅仅是重视通用还是重视专用。这都是体系结构学科内部细分方向的事情。宏观看,体系结构在每个时刻都非常重要。
CETC赵华龙HUST PhD:我不太同意文章中的部分观点,并非摩尔定律的终结带来的体系结构的盛宴,当下体系结构的盛宴是由于新的计算业务形式的大规模流行导致的,是新的ML计算业务模式的风靡才出现了你方唱罢我登场的体系结构大讨论。这与摩尔定律的延续没有明显因果关系。
如果不考虑计算业务的实际需求,大可以在单位面积内全部集成计算部件,那样的理论计算能力更会指数级增长,可是那样的”倚天长剑"没有办法在实际应用里发挥效力,甚至都无法有效运输数据给计算部件。所以才会是通用处理器诺大一个cpu,一大堆晶体管逻辑都围着一个alu转,都为它服务拼命想把它喂饱的现实情况。其实体系结构本身取决于我们实际需要的计算业务模式,神经网络这类新型计算业务要求的流行与普及才催生了这样的体系结构出现或新生,如果人类还未曾发现这样的计算业务对我们有大益处,那也不会有这样的体系结构,或者说我们不知道构建出这样的计算能力组织形式有什么用,那么度量它的计算能力完成了多少GFLOPS就更没意义了。而现在有了需求——神经网络类计算,那这种体系结构及其带来的GFLOPS计算能力就有了实际意义,就开始出现了所谓类似“一万倍的增长”,但这种计算能力的所谓增长并非我们在原先的环境下新的发现而出现的增长,而是新的需求使我们的环境发生了变化,才使这样组织和计量出来的计算能力有了意义。总之,摩尔定律是否延续不与本次盛宴构成因果关系,摩尔定律本身只能算盛宴的基础,而且目前来看还远未被终结。
王逵:我个人的看法是,应用需求总是会不断涌现的,没有AI,还会有别的,谁知道是啥,但总会有的。就像比尔盖茨说的,永远不要低估软件的力量。人类的创造力对算力的需求,是不会随着摩尔定律而停息的。当摩尔定律还适用的时候,对于架构,软件是懒惰的,不想适应新的架构,因为有工艺的免费午餐。但摩尔定律结束了,软件就不得不考虑适应新的架构,走软硬结合的路子,才能继续满足创造力对算力的需求。
文章转自新智元公众号,原文链接