如何看待 Google 既可以作 Inference，又可以作 Training 的新一代 TPU？
老实说看了新闻后觉得很震撼。虽然目前细节不多，但即使在宣称的数字上打个比较大的折扣，如果成本控制不错的话，大量在云上部署能够极大降低深度学习成本。 举个例子，假设实测比Nvidia Volta慢2倍，就是说一块Volta（120 TFLOPS）抵5块TPU2（45*5 TFLOPS)。假设TPU2 per die做到200刀一片，考虑到volta每块一万刀（估计）的价格，TPU2仍然有十倍受益。这个数字跟Nvidia服务器卡80+%利润率比较一致。 因为不是很懂体系架构，以下评论可能很不准确。 对TPU2觉得震撼主要是因为第一代中规中矩，本来以为第二代是进一步降低成本提升性能，但没想到一步跨到的训练，直接跟NVidia GPU拼了。 TPU一代是一个比较简单的协处理。核心是一个矩阵乘法器，准确来讲叫Systolic Matrix Multiplication (http://web.cecs.pdx.edu/~mperkows/temp/May22/0020.Matrix-multiplication-systolic.pdf)，外加一个比较大的on-chip SRAM来存中间数据。比较激进的采用了int8（至少是13年的时候胆子比较大）获得了大的受益，因为int8的乘法不论是芯片面积还是功耗都10倍好于FP32。 但反过来说，简单的架构导致不是所有任务都适用，而且int8导致了在TPU上部署的困难性，所以很难成为比较通用的云上芯片。 更多细节可以参见TPU在今年ISCA上论文。虽然学术界对此的创新性评价很一般，论文里面也一再强调为了赶时间只弄了个简单的版本，而且结果并不出众原因之一是没有用“awkward artifacts assembled solely to win benchmarks"。但不妨碍Google PR机器大力鼓吹。 论文才放出来，ISCA下个月才开，结果TPU 2出来了。可能是TPU团队大量离职原因，或者想蹭一下Nvidia Volta的PR。（AMD弄出了一个Vega，4倍弱于Votla和TPU2，结果夹在两个之间发布，可想而知。。。） TPU2目前来看至少解决了int8这一大问题。猜测它很有可能基于FP16，例如FP16和FP16做乘法，然后FP32做累加，那么目前大部分神经网络都可以不需修改的在上面部署。因为新闻稿强调了训练，他们一大改进就是针对TPU1基于DDR3的off-chip DRAM。大家基本猜测是基于HBM，可以提供5倍以上的内存带宽提升来帮助训练。 使用HBM还是会带来很多工程问题，毕竟这个技术并没有四处广泛应用。包括良品率下降，功耗上升，这个很大程度上解释了TPU2上巨大的散热器（FP16也会有功耗增加）。虽然很多人质疑TPU2功耗可能会比Volta高，但在云服务器里，只要不是特别离谱，这点额外功耗带来的电费增加是总成本的零头。 TPU2卡之间的网络连接不知道具体多快，但其格状的连接使得可能分布式最好也是要用data flow来做，没有交换机让网络成本下降，但远端之间延迟会比较大，需要上层框架好的封装。 总体而言，TPU2的优势还是在成本上，它比Volta的10倍价格优势会让Google云的成本大量降低。除非Nvidia服务器卡大降价，或者允许大量购买消费卡（例如Titan X)，那么G至少领先竞争对手一到两年。当然，这个只有当神经网络计算真的占到了云计算了中相当大的比例才有意义。 实际上是，虽然增长喜人，但还远远不够。 同志们还需努力。
这次主要是宣传稿，完全没有技术细节。内存带宽和访存模式没有说。最关键的flops/watt也没有说。问了一下核弹厂的人，他们表示从这个散热器大小来看，功耗比起volta gpu估计没有优势。 从这个设计看估计google是不会卖tpu的，甚至可能在云上也不会让用户直接用，大概是以托管训练服务的形式存在，类似于你上传数据再点几个按钮，他直接帮你把模型训练好。