主题文档

谷歌硬件工程师揭秘,tpu为何会比cpu、gpu快30倍?-k8凯发

谷歌硬件工程师揭秘,tpu 为何会比 cpu、gpu 快 30 倍?

  在谷歌发布 tpu 一年后,这款机器学习定制芯片的神秘面纱终于被揭开了。

  昨日,谷歌资深硬件工程师 norman jouppi 刊文表示,谷歌的专用机器学习芯片 tpu 处理速度要比 gpu 和 cpu 快 15-30 倍(和 tpu 对比的是英特尔 haswell cpu 以及 nvidia tesla k80 gpu),而在能效上,tpu 更是提升了 30 到 80 倍。

  从这次发布的测试结果来看,tpu 似乎已经超出了业界的预期,但是藏在这一芯片背后的内部架构究竟有什么秘密呢,我们从 jouppi 此前发布的论文当中,可以找到答案。

  据雷锋网了解,早在四年前,谷歌内部就开始使用消耗大量计算资源的深度学习模型,这对 cpu、gpu 组合而言是一个巨大的挑战,谷歌深知如果基于现有硬件,他们将不得不将数据中心数量翻一番来支持这些复杂的计算任务。

  所以谷歌开始研发一种新的架构,jouppi 称之为“下一个平台”。jouppi 曾是 mips 处理器的首席架构师之一,他开创了内存系统中的新技术。三年前他加入谷歌的时候,公司上下正在用 cpu、gpu 混合架构上来进行深度学习的训练。

  jouppi 表示,谷歌的硬件工程团队在转向定制 asic 之前,早期还曾用 fpga 来解决廉价、高效和高性能推理的问题。但他指出,fpga 的性能和每瓦性能相比 asic 都有很大的差距。他解释说,“tpu 可以像 cpu 或 gpu 一样可编程,它可以在不同的网络(卷积神经网络,lstm 模型和大规模完全连接的模型)上执行 cisc 指令,而不是为某个专用的神经网络模型设计的。一言以蔽之,tpu 兼具了 cpu 和 asic 的有点,它不仅是可编程的,而且比 cpu、gpu 和 fpga 拥有更高的效率和更低的能耗。

tpu 的内部架构

谷歌硬件工程师揭秘,tpu 为何会比 cpu、gpu 快 30 倍?

  该图显示了 tpu 上的内部结构,除了外挂的 ddr3 内存,左侧是主机界面。指令从主机发送到队列中(没有循环)。这些激活控制逻辑可以根据指令多次运行相同的指令。

  tpu 并非一款复杂的硬件,它看起来像是雷达应用的信号处理引擎,而不是标准的 x86 衍生架构。jouppi 说,尽管它有众多的矩阵乘法单元,但是它 gpu 更精于浮点单元的协处理。另外,需要注意的是,tpu 没有任何存储的程序,它可以直接从主机发送指令。

  tpu 上的 dram 作为一个单元并行运行,因为需要获取更多的权重以馈送到矩阵乘法单元(算下来,吞吐量达到了 64,000)。jouppi 并没有提到是他们是如何缩放(systolic)数据流的,但他表示,使用主机软件加速器都将成为瓶颈。

谷歌硬件工程师揭秘,tpu 为何会比 cpu、gpu 快 30 倍?

  256×256 阵列缩放数据流引擎,经过矩阵乘法积累后实现非线性输出

  从第二张图片可以看出,tpu 有两个内存单元,以及一个用于模型中参数的外部 ddr3 dram。参数进来后,可从顶部加载到矩阵乘法单元中。同时,可以从左边加载激活(或从“神经元”输出)。那些以收缩的方式进入矩阵单元以产生矩阵乘法,它可以在每个周期中进行 64,000 次累加。

  毋庸置疑,谷歌可能使用了一些新的技巧和技术来加快 tpu 的性能和效率。例如,使用高带宽内存或混合 3d 内存。然而,谷歌的问题在于保持分布式硬件的一致性。

tpu 对比 haswell 处理器

  在和英特尔“haswell”xeon e5 v3 处理器来的对比中,我们可以看到,tpu 各方面的表现都要强于前者。

  在 google 的测试中,使用 64 位浮点数学运算器的 18 核心运行在 2.3 ghz 的 haswell xeon e5-2699 v3 处理器能够处理每秒 1.3 tops 的运算,并提供 51gb/秒的内存带宽;haswell 芯片功耗为 145 瓦,其系统(拥有 256 gb 内存)满载时消耗 455 瓦特。

  相比之下,tpu 使用 8 位整数数学运算器,拥有 256gb 的主机内存以及 32gb 的内存,能够实现3b/秒的内存带宽,处理速度高达 92 tops ,这比 haswell 提升了 71 倍,此外,tpu 服务器的热功率只有 384 瓦。

谷歌硬件工程师揭秘,tpu 为何会比 cpu、gpu 快 30 倍?

  除此之外,谷歌还测试了 cpu、gpu 和 tpu 处理不同批量大小的每秒推断的吞吐量。

谷歌硬件工程师揭秘,tpu 为何会比 cpu、gpu 快 30 倍?

  如上图所示,在小批量任务中(16),haswell cpu 的响应时间接近 7 毫秒,其每秒提供 5482 次推断(ips),其可以实现的最大批量任务(64)每秒则可以完成 13194 次推断,但其响应时间为 21.3 毫秒。相比之下,tpu 可以做到批量大小为 200,而响应时间低于 7 毫秒,并提供 225000 个 ips 运行推理基准,是其峰值性能的 80%,当批量大小为 250,响应时间为 10 毫秒。

  不过需要注意的是,谷歌所测试的 haswell xeon 处理器似乎也不能完全说明问题,英特尔 broadwell xeon e5 v4 处理器和最新的“skylake”xeon e5,每核心时钟(ipc)的指令比这款处理器提升了约5%。在 skylake 是 28 核,而 haswell 为 18 核,所以 xeon 的总体吞吐量可能会上升 80%。当然,这样的提升与 tpu 相比仍有差距。

  最后雷锋网需要强调的是,tpu 是一个推理芯片,它并非是要取代 gpu,可以确定的是,tpu 与 cpu 一起使用对训练分析更加有益。但对于 cpu 制造商而言,如何研发出像 asic 一样兼顾性能和能效的芯片是现在以及未来要做的。

  jouppi 表示谷歌 tpu 已经开始出货,而英特尔这些芯片商也将面临更大的挑战。

  via 

the end
本文已经被浏览: 次,获赞:  次
网站地图