正文
搭载TPU的电路板
今天,谷歌首次发表论文深度剖析了TPU的详细架构及相关技术细节,
并将TPU在性能和效率上的表现与Haswell CPU和Nvidia Tesla K80 GPU做了详尽的比较,
也向外界揭开了这款处理器的神秘面纱。
论文链接:https://drive.google.com/file/d/0Bx4hafXDDq2EMzRNcy1vSUxtcEk/view
论文的作者Jouppi表示,在谷歌决定开发定制的ASIC(专用集成电路,即日后的TPU)之前,该硬件团队曾寄希望于用FPGA(现场可编程门阵列)实现廉价、高效、高性能的推理系统。
人们最初想到利用FPGA,主要在于看重其灵活性,但是相比于ASIC,其受到可编程性和一些其它因素的限制,导致最终这些设备在性能和功耗上的表现与人们的预期有很大差距。
该论文作者之一Norm Jouppi
TPU 像 CPU 和 GPU 一样,可以进行编程操作。它的设计也不仅仅是针对某种神经网络模型,而是能够在
多种神经网络
(CNN、LSTM,以及大型全连接网络模型等)中执行CISC(复杂指令计算机)的指令。所不同的是,
它将矩阵而不是矢量和标量作为原语
。
原语是机器指令的延伸,往往是为了完成某些特定的功能而编制的一段系统程序。
TPU整体框架,但不包括外接DDR3内存。左侧是主机接口,指令序列从主机发出(没有循环)。这些指令用于激活控制逻辑,控制逻辑可以基于指令(由于指令从主机传到芯片存在延迟,因此指令数量受到了限制)并反复运行该指令
不过,这并不意味着TPU有多复杂,它看起来更像雷达的信号处理引擎,而不是标准X86架构。此外“
它与浮点单元协处理器更为神似
,而跟GPU不太一样,”Jouppi表示,尽管TPU有较多矩阵乘法单元,它却没有任何储存程序,它仅仅执行主机下发的指令。
由于需要向矩阵乘法单元供给大量数据(通量在64000的数量级上),TPU上的动态随机存取存储器(DRAM)是
作为一个独立单元并行运行的
。Jouppi 说眼下还不知道TPU的扩展上限在哪里,只要你使用任何带有主机软件的加速器,就一定会有瓶颈。