昇腾 910 正式推出,这才是硬实力
8 月 23 日,华为正式推出了一款面向 AI 计算场景专门打造的芯片 —— 昇腾 910,这颗芯片最早和昇腾 310 一起首次亮相于华为去年召开的华为全连接大会上,其中昇腾 310 在去年已经实现了商用量产。
今年华为实现商用量产的是昇腾 910,相较于昇腾 310,它的性能相当强悍,其单颗芯片的计算性能已经超越了 Google TPU 2.0 单板四芯片的总计算性能。
昇腾 910 和华为之前用于手机上的 NPU 有所不同,他们虽然都是专门面向 AI 计算场景打造的芯片,但是就算力而言,二者根本就不在一个层级上。昇腾 910 虽然和华为最新的 NPU 一样采用了达芬奇架构,但是它并非是用于手机上的 AI 芯片,而是一款面向对 AI 方面有高算力需求的企业以及科研领域打造的芯片。
昇腾 910 的芯片大小差不多和现在台式机用的 CPU 相当,根据华为官方的数据,这个集成了海量晶体管的芯片最高在 FP16 下可以达到 256TFlops、在 INT8 下达到 512Tops 的算力。
Google 的 TPU 3.0 虽然号称是世界上算力最强、计算最快的 AI 芯片,但是 Google 并没有公布 TPU 3.0 的单个芯片算力,他们只公开一组数据:TPUv3 Pod 的功率相较于前代提升了 8 倍,这使得 Google 必须要给这样的 TPU 阵列使用水冷,Pod 由多组 TPU 构成,单个 Pod 的算力在 100PFlops 之上。
TPU 3.0 看似提升很大,但由于它的发布时间距离 TPU 2.0 很近,所以 TPU 3.0 的芯片本质上和 TPU 2.0 相比没有什么显著的提升。每个 Pod 算力的提升之所以如此大,主要是因为 Google 增加了每个 Pod 上芯片的数量,让 TPU 的服务器主板以更高的密度堆叠。
据估算,TPU 3.0 本身的性能大约是 TPU 2.0 的两倍,这样的性能提升并非是 Google 对芯片做了什么样的优化,而是他们倍增了 TPU 3.0 中的 MXU(可以理解为电脑的 CPU 核心数翻了一倍),使其算力有了明显提升。
TPU 2.0 单板四个芯片的总算力是 180TFlops,也就是说在 TPU 3.0 上,单板的算力能够达到大约 350TFlops,算下来每个芯片的算力不到 100TFlops。
仔细计算一番之后我们可以发现,虽然 Google TPU 3.0 的算力看起来十分恐怖,但是只考虑单个芯片的算力,它和昇腾 910 之间有比较大的差距。昇腾 910 确实是当下计算性能最强悍的 AI 芯片,单芯片计算密度处于世界第一的位置,在 AI 芯片的设计与制造上,华为甚至走在了 Google 和 NVIDIA 的前面。
这才是华为真正的硬实力,相较于之前让全网沸腾的鸿蒙 OS,昇腾 910 的正式推出反而才是华为真正大秀肌肉、值得让全网沸腾的一件事。
海思半导体虽然在整个行业内排不到特别靠前的水平,但是其实力已经完全可以和巨头们抗衡。不论是华为曾经推出的麒麟、凌霄亦或是这一次的昇腾,它们都在行业内做到了一个一流甚至是领先的水平。
昇腾 910 还内置了 16 通道的视频解码器,这使得昇腾 910 原生支持硬解 H.264/H.265 编码的视频流。解码器的存在进一步扩大了昇腾 910 的应用场景,这能够使它具有高速的、处理视频流的能力。
从华为关于昇腾的 Roadmap 我们可以看出,华为对昇腾家族不同系列的处理器有着非常明确、清晰的定位,去年推出的昇腾 310 算力并不是很高,它主要用来处理 AI 领域的一些边缘计算。而这一次正式推出的昇腾 910 则具有明显要高很多的算力,芯片面积和功耗也比昇腾 310 要高很多,它的定位则是「训练模型」。
在实际应用中,昇腾 310 主要是部署在终端设备上,例如一辆支持自动驾驶的智能汽车,它上面部署的就是昇腾 310 这一系列的处理器,因为在用户使用终端设备的过程中,系统只需要根据实时环境的变化、基于预先训练好的模型计算一个预测结果。这样的「预测」对算力的要求并不是很高,昇腾 310 完全可以驾驭住这样的计算。
相较于「预测」,在 AI 方面的计算中,「训练」才是真正吃算力的地方。算力被称为人工智能时代的基础资源,算力越高,工程师、研究员就可以在更短的时间内得出更多的模型,他们将有更充裕的时间对模型进行测试、调优,这能够显著降低 AI 模型开发的成本。
除此之外,算力越高意味着在同样的时间里 AI 能够进行越多轮次的计算,在无监督学习下这是非常重要的一点。
无监督学习消耗的算力是惊人的,在众多大学、众多企业,有很多人想要效仿 Google 的 Alpha Zero 开发自己的无监督学习程序,但是当项目推进到一定程度的时候,事情就变得困难了起来 —— 算力不足。
以 Google 的算力资源,AI 每小时甚至每分钟就能够进行非常非常多次的自我博弈,在庞大算力的支撑下,AI 的进步是非常明显、迅速的,三天内 Alpha Zero 就能够迅速掌握三种不同的棋类。
但是在算力不足的情况下,尤其是没有专用芯片,只能靠 GPU 集群来做训练的时候,无监督训练的过程就会变得异常缓慢,光是掌握一种棋类,其训练时间可能就长达数天、数周甚至是数个月,在这其中如果出现了什么算法逻辑上的问题,或者设计的神经网络结构需要调整,训练很可能要重头再来,对于开发者来说这是一种煎熬,很多项目要么是通过众筹的方式租用服务器来继续开发,要么因为缺乏算力而直接放弃了。
所以昇腾 910 这种专注于训练的 AI 芯片对整个行业来说意义是非常大的,其超高的算力能够直接缩短训练的过程,为 AI 的发展提供更多的可能,现在世界上所有的强力 AI,例如 Alpha Zero、Alpha Star、OpenAI Five、GPT-2 等等,都是在超强的算力下诞生的。
在笔者看来昇腾 910 未来的提升空间除了算力以外还有一个非常重要的点 —— 能效比。昇腾 910 单芯片的功耗达到了 350W(实际达到标称算力功耗在 320W),这主要是因为华为在单 Die 内暴力堆叠了高达 32 个达芬奇架构的计算单元,即使是在 7nm EUV 制程工艺下,芯片的功耗仍然还是比较高的。
对比行业内的其他芯片,昇腾 910 的功耗是偏高的,TPU 单板卡的功耗相较于昇腾 910 要低不少。如此大的功耗会给设备的散热带来很大的压力,而且更实在的一点是,这样的芯片会更吃电费。
AI 这个领域实际上和操作系统类似,它也是有一套生态的。Tensorflow、PyTorch、Caffe 这样的深度学习框架在行业内已经用得非常广泛,至今它们也保持着很高的热度。
然而,不同的框架计算上有不同的特性,由于 AI 芯片都是 ASIC,所以它们不可能能完美兼容市面上的所有深度学习框架。想要使其跑出最佳的性能,开发者往往要使用和芯片配套的框架。芯片和框架是互相优化、相辅相成的,二者缺一不可。
像 Google 的 TPU,它只能和 Tensorflow 协同工作,如果 Facebook 要让 PyTorch 兼容 TPU,使其能够在 TPU 上运行,那么他们需要和 Google 合作来对框架进行修改、适配,这整个过程是漫长而又复杂的。
对于华为来说,虽然 Tensorflow、PyTorch 这样的框架是主流,但是他们不可能面向这些框架来打造自己的芯片,所以华为在打造昇腾处理器的同时也打造了一套自己的计算框架 —— MindSpore。
和其他的 AI 计算框架一样,华为这一套框架也是开源的,华为表示这套框架预计的推出时间在明年的 1 月。
这意味着目前昇腾处理器还只能在华为内部(例如华为云)使用,因为即使华为开放了昇腾 910 的外售,由于开发者拿不到 MindSpore 这个框架,他们不能开发出能够运行在昇腾 910 上的 AI 程序,所以就算拿到了芯片,芯片也发挥不出作用。
由于 MindSpore 是一个全新的框架,所以开发者如果要对接昇腾芯片,他们必须要在这个框架上付出一定的学习成本。除此之外,华为和开发者都需要考虑如何将现在应用了主流框架的项目迁移到 MindSpore,这也是非常重要的一点。
暴力算力芯片 + 自有计算框架,华为的 AI 在未来有很大希望能够达到一个新高度,像现在的 Google 一样成为 AI 领域的领军者。昇腾 910 的推出也能够为华为云提供基础的算力支持,运行在华为云上的业务在昇腾处理器下也肯定会有体验上的提升。
不论是对华为、对科研人员、对其他企业以及开发者来说,昇腾 910 推出的意义都是积极的,对于国内 AI 行业的发展而言,昇腾 910 的出现也能够提到一定的推动作用,至于这个推动作用有多大,还要看华为对开发者提供的具体支持以及芯片的外售情况。