谷歌TPU2和英伟达V100的性能详细对比.doc

谷歌TPU2和英伟达V100的性能详细对比.doc

ID:28143783

大小:682.00 KB

页数:11页

时间:2018-12-08

谷歌TPU2和英伟达V100的性能详细对比.doc_第1页
谷歌TPU2和英伟达V100的性能详细对比.doc_第2页
谷歌TPU2和英伟达V100的性能详细对比.doc_第3页
谷歌TPU2和英伟达V100的性能详细对比.doc_第4页
谷歌TPU2和英伟达V100的性能详细对比.doc_第5页
资源描述:

《谷歌TPU2和英伟达V100的性能详细对比.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、谷歌TPU2和英伟达V100的性能详细对比  本文详细对比了谷歌TPU2和英伟达V100的性能,有两个对比方向:一是测试在没有增强过的合成数据上的吞吐量(每秒图像);二是,考察ImageNet上两者实现的精确性和收敛性。结果在ResNet-50模型的原始表现上,4块TPU2芯片和4块V100GPU速度相同。训练ResNet-50时谷歌云TPU的实现用时短到令人发指,且基于ImageNet数据集的图像分类准确度达76.4%的成本只要73美元,说物美价廉可能也不过分。  去年5月,谷歌推出了第二代TPU芯片,这是一个自定义开发的深度学

2、习加速芯片,不少人认为有望成为英伟达GPU的替代品。  可事实真的如此么?  在这篇文章中,作者详细对比了谷歌TPU2和英伟达V100的性能。孰优孰劣,一较便知~    环境设置  话不多说直接上干货了。下面我们就先比较由四个TPU芯片组成的TPU2组合板与四个英伟达V100GPU的环境设置的差别。  巧的是,因为两者的总内存均为64G,因此我们能够用同一个模型测试了,还能使用相同的batchsize,节省了不少工夫呢。  在这次实验中,我们用相同的方式训练模型,双方需要运行同步数据并行分布式训练。  最后,我们选中了ImageN

3、et上的ResNet-50模型进行测试。它实际上是图像分类的一个参考点,虽然参考实现是公开的,但目前还没有一个支持在云TPU和多个GPU上训练的单一实现。  先看看V100这一边,英伟达建议用MXNet或TensorFlow来实现,两者都可以在英伟达GPU云上的Docker映像中使用。  但实际的操作中我们却发现了一些问题,这要是两种实现不能很好融合多个GPU和产生的大型batchsize。  好在我们还有一些新发现,从TensorFlow的基准存储库中使用ResNet-50实现,并在Docker映像中运行它是可行的。这种方法比英

4、伟达的推荐的TensorFlow实现要快得多,只比MXNet实现稍微慢一点(约3%)。这样一来,也更容易在相同版本中用同一个框架的实现做对比。    再看看谷歌云TPU这一边,官方建议用带TensorFlow1.7.0官方TPU存储库的bfloat16实现。TPU和GPU实现都在各自的体系架构上使用混合精度计算,但大部分张量是以半精度的方式储存的。  一翻研究和对比后……我们终于敲定了实验方案。  对于V100来说,我们决定用AWS上的p3.8xlarge实例(XeonE5-2686@2.30GHz16内核,244GB内存,Ubu

5、ntu16.04),用4个单个内存为16GB的V100GPU进行测试。  TPU这边的测试,我们将小型的n1-standard-4实例作为host(Xeon@2.3GHz两核,15GB内存,Debian9),我们提供了一个云TPU,由4个单个内存为16G的TPU2芯片组成。  方案敲定后,我们又规划了两个对比方向。  一是我们要测试在没有增强过的合成数据上的吞吐量(每秒图像)。这种比较独立于收敛性,保证里了在I/O或数据增强中没有瓶颈bottleneck影响结果。  二是,我们要考察ImageNet上两者实现的精确性和收敛性。  

6、目标,明确,方法,明确。我们迫不及待开始测试了——  吞吐量测试  我们依据每秒合成数据上的图像来测量吞吐量,即在训练数据实时创建、batchsize也不同的情况下对吞吐量进行检测。  虽然~官方只推荐的TPU的batchsize是1024,但是基于读者的请求,我们还报告了其他batchsize大小的性能。    △在合成数据和w/o数据增强的不同批次上每秒的图像性能  在batchsize为1024的情况下,双方的吞吐量旗鼓相当,TPU略领先2%。  当batchsize较小时,在双方吞吐量均降低,但对比起来GPU的性能稍好一些

7、。看来,这些batchsize真的不是TPU的推荐设置~  根据英伟达的建议,我们还也在MXNet上做了一个GPU测验。  利用英伟达GPU云上Docker映像中提供的ResNet-50实现(mxnet:18.03-py3),我们发现在batchsize为768的情况下,GPU每秒能处理约3280个图像。这比上面最好的TPU结果还要快3%。  也正如上面所说的那样,在上述batchsize下,MXNet的实现在多个GPU上并没有很好聚合。所以,我们接下来研究的重点就是这就是为什么我们将重点就是TensorFlow的实现。  性价比

8、  上面我们也提到过,谷歌云TPU2一组有四块芯片,目前只在谷歌云上才能用到。  当需要进行计算时,我们可以将它与虚拟机相连。考虑到谷歌云上不支持英伟达V100,所以其云服务只能来自AWS。  基于上述结果,我们可以把数据标准化,从每小时的花费、每

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。