作者:小舟、泽南
一通跑分猛如虎,结果发现深度学习框架还不支持。
自 9 月份英伟达发布新一代安培架构消费级显卡 RTX 30 系列已过去两个月了,随着芯片代工者三星的产能爬坡,未来更多的人将有机会买到最新架构的 GPU RTX 3080 和 3090。不过由于价格的原因,更多时候我们还是希望能够先得知性价比再去下单。最近,在机器学习社区已有先行者进行了测试。
首先,测试得出的结果喜忧参半:对于卷积神经网络来说,英伟达 GeForce RTX 3090 要比专业的 AI 训练卡 Tesla V100 更快。不过在 TensorFlow 上使用 RTX 30 系列 GPU 的体验是非常不稳定的,至少在 NGC 容器之内是如此。
特别是在最新版的 TensorFlow 2 上,RTX 30 的性能似乎很差。
看来对于急需更高性能机器学习算力的人们来说,想要获得真正安培架构的速度还需要等待软件的适配。
在英伟达官网上,RTX30 系列显卡的一些参数和价格。
近日,国外网站 fsymbols 使用容器中的 TensorFlow,测试了英伟达 GeForce RTX 3090、3080 对比 2080Ti 在部分流行卷积神经网络训练上的性能。在这些表格中,你会发现基准测试的结果有点奇怪,因为迄今为止框架对于新硬件的支持很差。
ResNet 测试
测试使用了目前最常见的项目,深度残差网络 ResNet50:
随后还有ResNet101 网络的结果:
AIBenchmark测试
很多人都知道手机的 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/
Amazon SageMaker实战教程(视频回顾)
Amazon SageMaker 是一项完全托管的服务,可以帮助机器学习开发者和数据科学家快速构建、训练和部署模型。Amazon SageMaker 完全消除了机器学习过程中各个步骤的繁重工作,让开发高质量模型变得更加轻松。
10月15日-10月22日,机器之心联合AWS举办3次线上分享,全程回顾如下,复制链接到浏览器即可观看。
另外,我们准备了Amazon SageMaker 1000元服务抵扣券,帮助开发者体验各项功能。点击阅读原文,即可领取。
第一讲:AmazonSageMaker Studio详解
主要介绍相关组件,如studio、autopilot等,并通过在线演示展示这些核心组件对AI模型开发效率的提升。
视频回顾地址:https://app6ca5octe2206.h5.xiaoeknow.com/v1/course/alive/l_5f715443e4b005221d8ea8e3
第二讲:使用Amazon SageMaker 构建一个情感分析「机器人」
主要介绍情感分析任务背景、进行基于Bert的情感分析模型训练、利用AWS数字资产盘活解决方案进行基于容器的模型部署。
视频回顾地址:https://app6ca5octe2206.h5.xiaoeknow.com/v1/course/alive/l_5f715d38e4b0e95a89c1713f
第三讲:DGL图神经网络及其在Amazon SageMaker上的实践
主要介绍图神经网络、DGL在图神经网络中的作用、图神经网络和DGL在欺诈检测中的应用和使用Amazon SageMaker部署和管理图神经网络模型的实时推断。
视频回顾地址:https://app6ca5octe2206.h5.xiaoeknow.com/v1/course/alive/l_5f715d6fe4b005221d8eac5d
“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)