点上方蓝字计算机视觉联盟获取更多干货

在右上方 ··· 设为星标 ★,与你不见不散

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:机器之心

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

一通跑分猛如虎,结果发现深度学习框架还不支持。

自 9 月份英伟达发布新一代安培架构消费级显卡 RTX 30 系列已过去两个月了,随着芯片代工者三星的产能爬坡,未来更多的人将有机会买到最新架构的 GPU RTX 3080 和 3090。不过由于价格的原因,更多时候我们还是希望能够先得知性价比再去下单。最近,在机器学习社区已有先行者进行了测试。

首先,测试得出的结果喜忧参半:对于卷积神经网络来说,英伟达 GeForce RTX 3090 要比专业的 AI 训练卡 Tesla V100 更快。不过在 TensorFlow 上使用 RTX 30 系列 GPU 的体验是非常不稳定的,至少在 NGC 容器之内是如此。

特别是在最新版的 TensorFlow 2 上,RTX 30 的性能似乎很差。

看来对于急需更高性能机器学习算力的人们来说,想要获得真正安培架构的速度还需要等待软件的适配。

在英伟达官网上,RTX 30 系列显卡的一些参数和价格。

近日,国外网站 fsymbols 使用容器中的 TensorFlow,测试了英伟达 GeForce RTX 3090、3080 对比 2080Ti 在部分流行卷积神经网络训练上的性能。在这些表格中,你会发现基准测试的结果有点奇怪,因为迄今为止框架对于新硬件的支持很差。

ResNet 测试

测试使用了目前最常见的项目,深度残差网络 ResNet50:

随后还有 ResNet 101 网络的结果:

AI Benchmark 测试

很多人都知道手机的 AI 算力有一个比较流行的基准测试,即苏黎世联邦理工大学研究者们提出的 AI Benchmark。目前这一基准也加入了台式电脑和笔记本电脑显卡的测试分类。作者还在 NGC 20.10-tf1 容器中运行了 AI-Benchmark. 的基准测试。

目前在 AI Benchmark 网站上排在榜单第一的计算卡还是英伟达 Tesla V100 SXM2 32GB,其推理分为 17761,训练分 18030,AI 分数 35791。RTX 3080 和 3090 均超过了这个分数。

虽然 PyTorch 是目前深度学习在学界和业界较为流行的框架,但这次测评中只有 TensorFlow 的数据,因为在开始进行基准测试时,PyTorch 对 RTX 3080 和 3090 卡的支持又被移除了。在某些网络上,它们的测试成绩和 2060 Super 成绩相近——这显然不是一个正常的成绩。

英伟达的 TensorFlow Docker 容器

英伟达的 TensorFlow 容器之间的性能差异很大,这让人很困惑。仅从容器 20.10 NGC 开始,TensorFlow 才开始正式支持 3090 和 3080 卡,但实际上 20.08 容器拥有更好的性能。如果像之前发布过的所有 AI 训练基准一样,只限制测试一个版本,就不会获得很多有用的信息。因此,作者对 3-7 个不同的 TensorFlow 容器进行了基准测试,并在 TensorFlow 1.x 和 TensorFlow 2.x NGC 容器中测试了 4 种不同的 ResNet 变体。

参数

所有结果均适用于自动混合精度(Automatic Mixed Precision)FP16 进行的模型训练。目前我们只需研究 Volta 系列计算卡及以后的设备,更早年代的 GPU 分数已经没有意义。这些测试是在 Ubuntu 20.04、Nvidia 驱动版本 455.28、本机 CUDA 11.1 版本的配置条件下运行的。当然,容器具有自己的 CUDA 版本,在容器内部启动 nvidia-smi 时,会报告 CUDA 版本。

批处理大小

例如,在 NGC 的 TFv1 20.10 容器的 se-resnext101–32x4d 训练基准上,一个批次 128 获得的训练速度是 96 张图像的更小批的 2.5 倍,192 张图像 1.5 倍批处理大小速度的 1.6 倍。对于要买新显卡的人们来说,重要的是比对 RTX3090 和 3080 之间 24G 和 10G 显存带来的性能差异——一倍的价格换 2.4 倍的显存是不是值得?

在相似的批处理大小下,3090 有时并不会比 3080 快很多,两者都无法满足各自快一万个 CUDA 核心的需求,但是增加 3090 的批处理大小,批处理大小可以超过 2.4 倍。因为批处理大小会影响激活占用的空间,而模型和梯度大小则具有固定的内存成本。

XLA 优化

另一个变数是 XLA 优化对 GPU 训练性能的影响。这足以让我们了解 TensorFlow 团队所做的优化效果如何。由于某些原因,在 NGC 20.09 TF1 容器上,RTX 3080/3090 在 XLA 优化情况下的性能较差。在某些情况下,特定用例的性能比基于相邻用例的预期性能低 9 倍。

内存

我们知道,GeForce RTX 30 系列有 GPU 界的多项「第一」:它是首款有着 24GB GDDR6X 显存的游戏图形卡;首批支持 HDMI 2.1 的 GPU,一块显卡即可实现 4k 高刷新率或 8k 游戏。其中来自美光的 GDDR6X 内存可谓大跨步的提升——此前,显存带宽最高速度为 64 GB/s,传统二进制标准依赖两级信号传输编码为 1s 或 0s 的数据,每周期可传输一位数据。而美光新型的 PAM4 技术采用四个不同层级,同时向内存输入及输出两位数据。

由此,GDDR6X 可以将单颗粒的内存带宽提升至 84 GB/s,从而使系统带宽提升为之前无法想象的 1TB/s。30 系列 GPU 的内存速度非常之快,相比 2080Ti,3090 的速度提升了两倍,24G 的容量也比之前来的更加充足。

基准是来自 20.10 版本的代码,大部分可以在英伟达 GitHub 上的 DeepLearningExamples 中找到。但是,作者对容器的 workspace/nvidia-examples/cnn/resnet.py 中的 Resnet-50 代码进行了轻微的改动,因为英伟达的示例代码被限制为仅使用很小一部分(例如 80%)的 GPU 内存。这是通过以下代码完成的:

… = tf.GPUOptions(per_process_gpu_memory_fraction=0.8)
… = tf.GPUOptions(per_process_gpu_memory_fraction=0.99)

CPU 型号不同是否会对成绩有影响?测试发现,在 i7-4960X 或 i9-7980XE CPU 上运行这些代码并没有造成太大的不同。但是大多数基准在 i7-4960X 上略胜一筹,因此不必为升级 CPU 过多担心。

对于 GPU 来说,在涉及深度学习的数学方面,30 系列仅略高于 20 系列,两者均具有 Tensor Core 32 位累加运算性能,而 RTX Titan 和 Quadro 卡(RTX 6000、A6000 等)的速度是 FP16 累积 Tensor Core 计算速率的一半,英伟达的研发者认为混合精度训练的 Tensor Core 的计算速率足以进行推理,但不能进行训练。因为 2080 Ti 的 Cuda Core(不是 Tensor Core)FP16 计算没有减少一半,性能却是 FP32 FLOP 的 2 倍。这次英伟达决定也将其削减,因此在 AI 计算中由于 FP16 计算的 FLOPS 和 FP32 一样多,因此改进几乎是微乎其微的,仅略高于 2080 Ti。你可以在英伟达的 30 系列规格 PDF 中发现这一点。

因此,如果你不是在训练 1x1 和 3x3 的,只看内存不看算力的卷积网络,而是在探索一些具有较大的「密集」/「全连接」非卷积层的计算密集型训练,现在更好的选择是购买二手 RTX Titan 卡,因为 RTX 20 系列 NVLink GPU 的价格正在迅速下降。当然,由于 AMD 今年十月发布了 Radeon RX 6900XT,明年春季 RTX 30 系列显卡的价格也有望下降,我们甚至有可能等来 RTX 3080Ti。

结论

新一代架构肯定是更好的,如果你打算训练大型卷积神经网络,那么 RTX 3090 一定比专业卡 Tesla V100 要好,而且成本方面也更划算。3090 更好的原因在于内存更大,能够运行比 V100 更大的网络。即使在 V100 上可以以小批量进行处理,但 3090 的速度要更快一些,因此无需缩小批处理大小,选择 3090 更加合适。

对比同属消费级的 RTX 2080Ti,新一代显卡 3080 在 AI 训练任务上可以获得 25-30% 的性能提升,这相比英伟达在发布会上宣传的对比 RTX 2080 有 100% 性能提升小了一些。但因为新品的价格没有提升,所以能买到的话还是物有所值。

如果用户确定只训练小型网络,并且也不需要在一台计算机上分配过多的计算量,那么 3080 将更具成本效益。至少在某种程度上,对于 NGC 容器,TensorFlow v2 的性能差强人意。

英伟达 RTX 3080 和 3090 是目前全球 AI 从业者最希望拥有的 GPU,但自发布两个月来出货量仍然很少,不论是加价购买、程序抢单还是纯靠运气,能够买到这些显卡并进行简单的深度学习测试就足以花费大量时间了。对于大多数人来说,目前看起来还可以等一等。

参考内容:

https://fsymbols.com/3080-3090-benchmarks/

end

这是我的私人微信,还有少量坑位,可与相关学者研究人员交流学习 

目前开设有人工智能、机器学习、计算机视觉、自动驾驶(含SLAM)、Python、求职面经、综合交流群扫描添加CV联盟微信拉你进群,备注:CV联盟

王博的公众号,欢迎关注,干货多多

王博的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章(上)

博士笔记 | 周志华《机器学习》手推笔记第八章(下)

博士笔记 | 周志华《机器学习》手推笔记第九章

点个在看支持一下吧

英伟达RTX 3080值不值得抢?在TensorFlow上训练了卷积网络相关推荐

  1. 英伟达RTX 4070最新测评来了!光追效果更棒,但仅限于2k游戏

    萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 英伟达RTX 4070开卖,4799元的价格也是让不少人心动. 由于之前矿难一波,英伟达30系显卡失去了不少人的信任,大伙儿的目光也都放在了40系 ...

  2. 听说苹果M1能打英伟达RTX?那跑个光追试试

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 不得不说,自发布以来,苹果M1芯片的各项测评表现都令人印象深刻.甚至此前有人发现M1 Mac Mini在某项TensorFlow速度测试中的 ...

  3. 英伟达RTX 30系列卖得太好,财报业绩创新高,老黄:Arm收购完成时间已确定

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 教主黄仁勋,最新心情应该很不错. 因为业绩很不错.北京时间11月19日凌晨,英伟达公布了2021财年第三季度财报. 第三季度营收47.26亿 ...

  4. 高清重制版阿波罗11号录像,英伟达RTX还原50年前登月细节

    晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 1969年,阿姆斯特朗的一小步,成为人类历史的一大步. 为了纪念阿波罗11号登月球50周年,英伟达用RTX系列显卡的光线追踪技术,修复了颗粒 ...

  5. AMD推出7nm高端显卡Radeon VII,直指英伟达RTX 2080

    显卡战争已经发展到了2019年,并且变得比任何人预想的都要激烈. CES 2019大会上,AMD发布了第一款消费级的 7nm GPU,取名:Radeon VII.据了解,这不是 AMD 的第一颗 7n ...

  6. ubuntu18.04系统外接显卡(英伟达RTX 2080 Ti)驱动安装

    1.ubuntu18.04系统安装基于win10 网上教程很多,略... :) 2.硬件设备 带雷电3接口的笔记本,我这里是联想的YOGA S740(自带一块MX250独显 ),别的本本也行,一定得雷 ...

  7. linux英伟达显卡内核不匹配,Linux 5.11 内核将添加对英伟达 RTX 30 系列显卡的支持...

    IT之家1月16日消息 尽管 Linux 5.11 内核即将于 2 月初发布,但 Linux 创始人 Linus Torvalds 表示,已经决定将英伟达 RTX 30 系列 Ampere 显卡新发布 ...

  8. linux英伟达显卡内核不匹配,Linux 5.11内核将支持英伟达RTX 30系显卡

    原标题:Linux 5.11内核将支持英伟达RTX 30系显卡 在本周末Linux 5.11-c4版本发布前,Linus Torvalds将来自Nouveau driver的RTX 30系列显卡开源驱 ...

  9. 英伟达jetson tx1开发套件配置tensorflow

    英伟达jetson tx1开发套件配置tensorflow 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客拥有最终解释权 欢迎关注我的博客:http://blog.csdn.ne ...

最新文章

  1. 浏览器安全检查己通过_百度主动推送三项合一功能
  2. 802.1p 优先级与内部优先级的映射关系
  3. Android消息处理系统——Looper、Handler、Thread(转载)
  4. Linux中的用户和组
  5. 使用锁实现多线程共用一个数据源
  6. Python 海龟画图(turtle)常用的颜色单词
  7. lisp函数大全 微盘_LISP函数(分类)大全
  8. oracle12c导11g,Oracle12c的数据库如何向11g导入
  9. python修炼第四天
  10. 朱邦芬院士:我所熟悉的几位中国物理学大师的为人之本
  11. 第5章 MySQL高可用架构设计
  12. videojs 卡顿_流媒体技术学习笔记之(四)解决问题video.js 播放m3u8格式的文件,根据官方的文档添加videojs-contrib-hls也不行的原因解决了...
  13. HDOJ/HDU 1565 方格取数(1)
  14. P2665 [USACO08FEB]连线游戏Game of Lines
  15. linux tcp fast open,linux开启tcp fast open/tfo并测试
  16. 计算机刷bios版本,华硕主板怎么刷BIOS版本?华硕主板在线升级BIOS详细图文教程...
  17. php mysql计数器代码一例
  18. Jupyter 查看中间变量值的方法
  19. php ecshop 清除缓存文件夹,ecshop缓存常见问题
  20. cocos creator 广告控制脚本

热门文章

  1. tesseract 提升 速度_2020斗式提升机料斗呼伦贝尔厂家定制哪家好
  2. oracle 修改序列末值,当ViewModel值更改时,用户界面未更新
  3. 如何开发python sdk调用数据_Python SDK调用示例
  4. java页面间面向对象的方法面试题_JAVA面向对象面试题带答案(墙裂推荐)
  5. 计算机硬件外围设备介绍,天津2012年自考“计算机外围设备使用与维护”课程考试大纲...
  6. 添加mysql库路径_修改MySQL数据库存放路径
  7. python学习之模块--模块(五)
  8. Win10 取消桌面快捷键图标
  9. servlet和jsp学习总结
  10. Django 第十二课 【class meta】