没过多久,5 月 17 日,在 Google I/O 大会上,Google 公布了第二代 TPU,用媒体的话说“…stole Nvidia’s recent Volta GPU thunder…”。虽然 TPU2 的细节公布的并不多,但指标确实看起来很不错,而且具有非常好的可扩展性。唯一的遗憾就是它并不对外销售,只能以 TPU Cloud 的方式供大家使用。
9 月下旬,Jeff Dean 这位 Google 的软件大神参加了 HotChip 这个芯片界的重要会议,并在 Keynote “Recent Advances in Artificial Intelligence via Machine Learning and the Implications for Computer System Design”也亲自介绍了 TPU 和 TPU2 的情况,把它们作为新的计算生态中重要的一环。
9 月底,NVDLA 在承诺的最后期限之前开源了 NVDLA 的部分硬件代码,同时公布了未来开源更多硬件和软件的路线图。这之后,大家对 NVDLA 也做了各种分析和讨论,试图把它玩起来。从目前来看,NVDLA 的开源好像并没有影响众多初创公司的融资。这个话题我们后面再说。至于 Nvidia 开源 DLA 的原因,官方的说法是让更多人可以更容易的实现 Inference,促进 AI 的推广,特别是在众多嵌入式设备上的应用。但从整个开源的过程来看,这个开源的决定似乎是比较仓促的。DLA 来自 Nvidia 自动驾驶 SoC 中的一个 module,最初并不是以开源 IP 为目的而设计的。而且 9 月的开源也只公开了一部分硬件代码和相应的验证环境,离真正能用起来也还是有较大差距。我们不好判断这个开源的决定是否和 Google TPU(在 Inference 上有比较大的优势)的强势亮相有关系。但基本的推测是,在 Deep Learning 中 Nvidia 的核心利益应该在于 Training(目前 GPU 还是 training 的最好平台)。让 Inference 门槛更低,渗透到更多应用,特别是 Edge 端,从而进一步促进 Training 的需求,应该是符合它的最大利益的。而且 NVDLA 的软件环境还是使用 Nvidia 的 CUDA/TensorRT,还是由 Nvidia 掌控的。
这场从一篇论文开始,几乎贯穿了 2017 年全年的 Google 和 Nvidia 的明争暗斗,对业界的影响可能要远远超过这两家公司本身。我之所以把它称为“错位”的战争,是因为它发生在 Google 这样的传统的软件巨头和 Nvidia 这样的芯片巨头之间。如果换成 Intel vs Nvidia,似乎是再正常不过的。Google 的参战,也许是开启了新的时代。我们可以看到,不仅是 TPU,Google 在 10 月又公布了他们在“Google Pixel 2”手机中使用的定制 SoC IPU(Image Processing Unit)。和 Apple 越来越多的自己定制芯片一样,Google 这样的科技巨头同样有应用(明确知道自己要什么),技术(对相关技术的多年积累),资源(不缺钱,不缺人)上的优势,定制自己的硬件,甚至芯片会变得常态化。同时我们也看到,Google TPU 的示范效应已经显现,更多的科技巨头加入 AI 加速硬件的竞争。Tesla 宣布自己定制自动驾驶芯片;Amazon,Microsoft,以及国内的 BAT,华为都在 Cloud 中提供专门的 FPGA 加速的支持;据称 Big Five 中还有在自己开发芯片的;BAT 也都在组建芯片设计的团队,等等。虽然大家具体的架构和实现方式不同,但都反映出对 AI 专用硬件的极大兴趣。相信未来这一趋势会越来越明显。
同时,传统的芯片巨头当然不会坐视这个巨大的市场被 Nvidia 主宰或者被 Google 们瓜分。Intel 连续收购了 Nervana(云),Movidius(端),Mobileye(自动驾驶),Altera(FPGA),又把 AMD 的 RajaKudori(GPU)招至帐下,甚至还搞了 Loihi(nueromorphic),可以说拿了一手好牌;虽然动作没有大家想象的那么快,但后面的发力还是值得期待的。AMD 也在努力追赶,毕竟他们的 CPU+GPU 有自己绝活,而整个公司也已经逐渐走出了低谷。而且,不管 Tesla 和 AMD 合作自动驾驶芯片的消息到底是真是假,芯片公司这种输出芯片设计能力的模式也是一种不错(或者无奈)的选择。
为什么传统上不愿意碰半导体产业的投资者现在却对 AI 芯片趋之若鹜呢?这是一个有趣的问题。具体的原因可能有很多方面,整个 AI 领域的投资热潮应该是一个主要原因。如果观察这些投资背后的资本,可以看到很多本身就是 AI 领域很活跃的投资者,甚至本身就是把 AI 作为未来重点的科技巨头,比如 BAT。而传统的投资半导体领域的资金倒是比较谨慎一些。从这个角度来说,这些没有太多半导体背景的资本大量进入芯片领域,是会给大家带来新的机会和视野,还是带来风险和不确定性,还是有待观察的。另外,现在所说的 AI 芯片,一般是指 Deep Learning 加速芯片,相对来说,关键算法简单清晰,优化目标非常明确,很多技术(比如矩阵运算的硬件加速)已有多年的研究基础。而对这种硬件加速器的验证,测试和调试也相对容易。如果不进行精细的优化,硬件部分可以由一个较小团队在较短时间完成。这些技术上的特征比较适合初创公司快速尝试。当然,做一个加速芯片(或者 IP)的硬件只是第一步。要真正做出能被市场接受的产品,则需要很多扎实的工作,产品定义,硬件效能,软件工具,系统测试,现场支持等等,一个短板也不能有。虽然大家都很关心投片的时间,但样片出来之后,脏活累活还多着呢。
2018 • 关注什么
对于 2018,我还是非常期待的。作为一名多年从事芯片架构设计多年的工程师,我首先期待看到一些技术上的创新。2017 年我写了不少分析 AI 芯片相关技术的文章,到年末几乎有点审美疲劳了(相信读者也是一样),似乎新鲜东西越来越少。在 2017 年底,有一个叫 Vathys 的初创公司,一下子开了好几个脑洞,全定制的 Asynchronous Logic,等效的时钟可以到 12GHz(28nm 工艺);High-densitySRAM(1T-SRAM),片上存储容量可以达到 1.5GB(28nm);Wireless 3D Stacking,10,000GBit/S @ ~8 fJ/bit。这几项技术要么是目前还停留在学术研究阶段,要么是曾经昙花一现。一个初创公司一下就祭出这几个大招,又是这么高的指标,真有可能实现吗?所以,当 Vathys 的老板发邮件说应该把他们公司加到我做的 AI 芯片 List 里的时候,我开始是婉拒的。不过,换一个角度来看,即使是他们完全在忽悠,也算是击中了 Deep Learning 处理器的痛点。而且这几项技术目前也都有人在研究,在 AI 的热潮和巨大的资金支持下也许真能搞出来也说不定。所以,我还是希望看到他们或者是其它团队能够在这几项技术上取得突破,让我们真正激动一把。说到技术的突破,我们未来(可能要比 2018 年更远)还可以期待看到在存储技术上的突破,以及由新的存储技术带动的架构上的创新,包括 Neuromorphic 这条技术路线。
接下来,当然是巨头们的下一步动作。Google 的 TPU 是否会卖给自己之外的用户,直接和 Nvidia 展开竞争?目前 ONNX 阵营已经形成和 Google 的对峙,Google 作为生态最完整的厂商,推广 TPU 对巩固自己的领先地位很有意义。Big Five 和 BAT 哪个会学习 Google 榜样直接自研芯片?阿里达摩院的芯片研究会不会从 AI 开始?Intel 能不能如大家所期待的全面爆发?Nvidia 会如何应对来自各方的挑战,是否会做更专用的加速芯片,而不是仅仅在 GPU 中加个 Tensor Core?高通什么时候在手机芯片中加上硬件加速器?ARM 下一步会怎么走,会不会横扫嵌入端?。。。随便想想就会有很多值得期待的看点。最近我们也看到,为了对抗 Nvidia,AMD 和 Intel 竟然很罕见的宣布合作。而 IBM 在 Power9 上和 Nvidia 深度合作。2018 年也许我们还能看到业界巨头间更多的合纵连横。
初创公司的命运也是 2018 年最大的看点。我在之前的一篇文章中说过“对于 AI 芯片的 startup 来说,2018 年就算不是毕业大考,也至少到了学期末考试了…”。2018 年,大部分初创公司都将会交出第一次测验的结果(芯片),也会开始小批量的试用。相信到时会有比较公平的 Benchmarking 结果出现,“理论上”的指标会被实际的“跑分”结果取代。虽然对于初创公司来说,犯错误是可以容忍的,第一代芯片也不能完全代表公司未来的前景。但是,做芯片需要巨大资源的持续支持,这个阶段掉队可能非常危险。当然,第一次的淘汰对于真正优秀的企业也是最好的机会。我非常期待看到能够在考试中脱颖而出,并跨上新的台阶(或者直接毕业)的同学;或者,会有我们不认识的面孔,突然惊艳出场。另外,2018 年,在 Edge 端会有更多的传统芯片厂商加入竞争,三星,高通,MTK,展讯等等;而在嵌入端 IP 上有绝对优势的 ARM 应该也会有更大的动作,这些都可能会对初创公司的命运产生重大影响。
最后,是变局的可能。从整体上来讲,AI 整体上在 2018 年会怎么发展是一个大家都非常关注的问题。继续高速增长,还是平稳发展,又或者会遇到问题高开低走?不管是哪种情况,AI 芯片必然会受到大势的影响。比较特殊的是,芯片研发的周期大约在 9 到 18 个月左右,这比软件应用的开发和更新周期要长的多。再加上一些滞后效应,芯片的发展很难和算法和应用的发展节奏同步。芯片开发中一个比较可怕的问题就是未来的不确定性。相对来说,一个可预期的平稳增长的环境是最有利于芯片研发的,可以让芯片设计者能够更好的规划产品和协调资源。另一种变局情况是,算法层面发生巨大的变化,也就是技术上的不确定性。这几年最成功的 AI 算法就是基于神经网络的深度学习。这正是目前 AI 芯片在需求上的基础,也决定了现在大部分 AI 芯片都是以加速这一类算法为目标的。如果基本算法需求发生变化,会对 AI 芯片的设计产生很大的影响。比如,目前已经有一定应用基础的低精度网络,也就是在 inference 中使用非常低的精度,甚至直接使用二值网络。如果这种 Inference 得到广泛应用,现在的芯片架构则可能得要重新考虑。再比如,如果 Hinton 大神的 capsule networks 得到实用,也可能会需要新的芯片架构来支持。毕竟 AI 领域现在发展很快,所以大家也都必须要时刻盯着应用和算法层面最新的进展。我们也要随时问自己下面的问题(来自 Jeff Dean 在 NIPS2017 的演讲)。