当前位置:新闻中心行业动态 → 正文

谷歌披露了TensorFlow处理器单元架构的细节

责任编辑:editor004 作者: Dylan Raithel |来源:企业网D1Net  2017-05-17 12:03:23 本文摘自:INFOQ

本月早些时间谷歌进一步披露了更多关于一年前发布的TPU的细节。TPU项目和团队的高级架构师Norm Jouppi表示,与Nvidia K80和Haswell E5-2699 V3等主流高性能处理器相比,使用TPU执行神经网络计算可以获得成数量级的性能增益。Jouppi说:

“据估计TPU会比K80 GPU和Haswell CPU快大概15倍到30倍……在6个神经网络用例中,有4个在TPU上是内存或带宽受限的,假如让TPU使用和K80 GPU一样的内存系统,那它就可以比GPU和CPU快30到50倍……在一个标准的效率指标功耗效率比(TOPS/Watt)测试中,TPU的测试结果也比传统处理器高30到80倍。”

最早定制ASIC的动机来自于使用谷歌翻译API的计算需求,注意,假设这个地球上的每台手机每天都使用谷歌翻译API三分钟,那就得多搭建好几十个数据中心。

架构白皮书上记录了把K80和E5-2699作为计算核心进行一定范围内的神经网络计算时,相应的实验设计、数据收集和分析等细节。TPU现在不是用于训练神经网络的。它最早就是用作矩阵乘法器,通过矩阵乘法器、板载内存和缓存系统一起,实现神经网络的多层功能。其中包括在各层之间保存感知器的输出和状态等,这些在MLP和CNN等内部都广为使用。

但TPU并不仅仅限于神经网络的实现,它是通用的,它的架构是基于Jouppi和团队研究的全面用例的。这么做的部分动机就是要支持TPU的按时交付,还有必要的灵活性来优化矩阵浮点运算,而这也是芯片要执行的最基本的运算操作。而把TPU和包含了应用程序所需的其它部件的CPU/GPU架构结合起来很方便,只需要用上PCIe总线就好了。

这样的架构让CPU/GPU可以在神经网络的计算之外执行训练或TensorFlow程序的任意部分。比如程序要提前加载数据,或者要把指令输入TensorFlow运行等等,这些都要由CPU/GPU管理并发给TPU。从这方面看,TPU非常像显卡或FPU。

“TPU像CPU或GPU一样都是可编程的。它并不专为某个神经网络模型设计,可以在多种网络上执行CISC指令(卷积、LSTM模型、大型全连接模型等)。所以它是可编程的,但使用矩阵作为原语,而不是向量或标量。”

就像CPU和GPU架构的时变优化特性一样,TPU具有确定性的特性,在功耗效率比的测试中TPU优于基准芯片及每秒千万亿次的超级计算机。据测试数据来看,TPU在功耗效率比的测试中性能超出一般处理器30到80倍。

“与K80 GPU的32位浮点运算相比,TPU使用的是8位收缩矩阵乘法器,消耗的能量少了几个数量级,压缩了25倍的MAC(65536 8位对2496 32位)和3.5倍的板上内存(28MB对8MB)。更大的内存有助于增加应用程序的操作强度,让它们可以更充分地使用额外的MAC……商业产品在计算架构上很少出现数量级的差别,因此TPU可能会成为专用领域架构的一个原型。”

作为实验设计研究阶段的一部分,Jouppie和团队在谷歌的平台上研究了神经网络的使用,他们发现了更多关于时间敏感型应用的需求,而不是关于他们最初设想的吞吐量敏感型应用,这让他们意识到,对大量廉价资源的适当使用仍然可以得到性价比很高的高性能,这也符合阿姆达尔定律。

TPU实验涉及六种神经网络:MLP、CNN和LSTM各两种。MLP和LSTM都是内存受限型的,因此调整实验的内存和带宽排列对性能的影响非常大。这可能要归因于MLP和CNN会重用前层的权重,而且也会在一定程度上重用前层的输出。另一方面,LSTM会在各个时间步长重用权重,但只会选择性地使用前层的输出,这样就会不受限于内存,更多地是受限于计算能力。这一点在考察TPU使用的PCIe总线IO带宽时也适用。

经过15个月多的开发周期,以及在假设以TPU为核心的架构上对内存和缓存的改进,Jouppie和团队声称他们已经获得了比K80和E5-2699性能高30到50倍的成绩。

阅读英文原文:TensorFlow Processor Unit Architecture

关键字:谷歌TPU乘法器

本文摘自:INFOQ

x 谷歌披露了TensorFlow处理器单元架构的细节 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

谷歌披露了TensorFlow处理器单元架构的细节

责任编辑:editor004 作者: Dylan Raithel |来源:企业网D1Net  2017-05-17 12:03:23 本文摘自:INFOQ

本月早些时间谷歌进一步披露了更多关于一年前发布的TPU的细节。TPU项目和团队的高级架构师Norm Jouppi表示,与Nvidia K80和Haswell E5-2699 V3等主流高性能处理器相比,使用TPU执行神经网络计算可以获得成数量级的性能增益。Jouppi说:

“据估计TPU会比K80 GPU和Haswell CPU快大概15倍到30倍……在6个神经网络用例中,有4个在TPU上是内存或带宽受限的,假如让TPU使用和K80 GPU一样的内存系统,那它就可以比GPU和CPU快30到50倍……在一个标准的效率指标功耗效率比(TOPS/Watt)测试中,TPU的测试结果也比传统处理器高30到80倍。”

最早定制ASIC的动机来自于使用谷歌翻译API的计算需求,注意,假设这个地球上的每台手机每天都使用谷歌翻译API三分钟,那就得多搭建好几十个数据中心。

架构白皮书上记录了把K80和E5-2699作为计算核心进行一定范围内的神经网络计算时,相应的实验设计、数据收集和分析等细节。TPU现在不是用于训练神经网络的。它最早就是用作矩阵乘法器,通过矩阵乘法器、板载内存和缓存系统一起,实现神经网络的多层功能。其中包括在各层之间保存感知器的输出和状态等,这些在MLP和CNN等内部都广为使用。

但TPU并不仅仅限于神经网络的实现,它是通用的,它的架构是基于Jouppi和团队研究的全面用例的。这么做的部分动机就是要支持TPU的按时交付,还有必要的灵活性来优化矩阵浮点运算,而这也是芯片要执行的最基本的运算操作。而把TPU和包含了应用程序所需的其它部件的CPU/GPU架构结合起来很方便,只需要用上PCIe总线就好了。

这样的架构让CPU/GPU可以在神经网络的计算之外执行训练或TensorFlow程序的任意部分。比如程序要提前加载数据,或者要把指令输入TensorFlow运行等等,这些都要由CPU/GPU管理并发给TPU。从这方面看,TPU非常像显卡或FPU。

“TPU像CPU或GPU一样都是可编程的。它并不专为某个神经网络模型设计,可以在多种网络上执行CISC指令(卷积、LSTM模型、大型全连接模型等)。所以它是可编程的,但使用矩阵作为原语,而不是向量或标量。”

就像CPU和GPU架构的时变优化特性一样,TPU具有确定性的特性,在功耗效率比的测试中TPU优于基准芯片及每秒千万亿次的超级计算机。据测试数据来看,TPU在功耗效率比的测试中性能超出一般处理器30到80倍。

“与K80 GPU的32位浮点运算相比,TPU使用的是8位收缩矩阵乘法器,消耗的能量少了几个数量级,压缩了25倍的MAC(65536 8位对2496 32位)和3.5倍的板上内存(28MB对8MB)。更大的内存有助于增加应用程序的操作强度,让它们可以更充分地使用额外的MAC……商业产品在计算架构上很少出现数量级的差别,因此TPU可能会成为专用领域架构的一个原型。”

作为实验设计研究阶段的一部分,Jouppie和团队在谷歌的平台上研究了神经网络的使用,他们发现了更多关于时间敏感型应用的需求,而不是关于他们最初设想的吞吐量敏感型应用,这让他们意识到,对大量廉价资源的适当使用仍然可以得到性价比很高的高性能,这也符合阿姆达尔定律。

TPU实验涉及六种神经网络:MLP、CNN和LSTM各两种。MLP和LSTM都是内存受限型的,因此调整实验的内存和带宽排列对性能的影响非常大。这可能要归因于MLP和CNN会重用前层的权重,而且也会在一定程度上重用前层的输出。另一方面,LSTM会在各个时间步长重用权重,但只会选择性地使用前层的输出,这样就会不受限于内存,更多地是受限于计算能力。这一点在考察TPU使用的PCIe总线IO带宽时也适用。

经过15个月多的开发周期,以及在假设以TPU为核心的架构上对内存和缓存的改进,Jouppie和团队声称他们已经获得了比K80和E5-2699性能高30到50倍的成绩。

阅读英文原文:TensorFlow Processor Unit Architecture

关键字:谷歌TPU乘法器

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^