RTX3080 在Linux上的TensorFlow和NAMD性能
介绍
备受期待的NVIDIA GeForce RTX3080已发布。看看RTX3080 在Linux上的TensorFlow和NAMD性能如何。
RTX3080的机器学习和分子动力学性能如何?
- 初次测试看起来非常好!TensorFlow进行ResNet50训练的初步结果似乎比RTX2080Ti更好。
- NAMD的分子动力学性能与我所见的一样好,并且基本上仅受Intel Xeon 24核3265W上的一个RTX3080 GPU的CPU约束。
测试有几个问题:
- 必须等到9月17日正式启动才能获得可用的Linux显示驱动程序。这很烦人,因为Tesla A100得到了几个月的支持。
- 使用的容器应用程序的RTX3080上,只有两小时的时间可以访问该卡进行测试,自动化测试而设置的脚本却失败了。(有libnvidia-容器错误)
- 尝试使用Anaconda构建中的TensorFlow,但它在RTX3080上失败,并出现cuBLAS库错误。(使用Google的ResNet50基准测试)
- 在本周早些时候也使用预发行的Windows驱动程序尝试了上述操作,并且出现了相同的错误。
但是,通过快速安装docker然后使用NVIDIA NGC的容器(我之前尝试使用docker的替代品)来使工作正常。
这是非常简短的早期测试!我希望性能和兼容性会很快得到改善。在修订了新的驱动程序之后,并且在软件开发人员有机会进行更多的优化和调试之后,我将进行更彻底的测试。
测试系统
硬件
- Intel Xeon 3265W:24核(4.4 / 3.4 GHz)
- 主板:华硕PRO WS C621-64L SAGE / 10G(Intel C621-64L EATX)
- 内存:6 x REG ECC DDR4-2933 32GB(总计192GB)
- NVIDIA RTX3080和RTX TITAN
软件
- Ubuntu 20.04 Linux
- Docker版本19.03.12
- NVIDIA驱动程序版本:455.23.04
- nvidia-container-toolkit 1.3.0-1
- NVIDIA NGC容器
- nvcr.io/nvidia/tensorflow:20.08-tf1-py3
- nvcr.io/hpc/namd:2.13-单节点
测试工作
- TensorFlow-1.15:ResNet50 v1,fp32和fp16
- NAMD-2.13:apoa1,stmv
命令行示例
- docker运行–gpus all –rm -it -v $ HOME:/ projects nvcr.io/nvidia/tensorflow:20.08-tf1-py3
- docker运行–gpus all –rm -it -v $ HOME:/ projects nvcr.io/hpc/namd:2.13-singlenode
- python nvidia-examples / cnn / resnet.py –layers = 50 –batch_size = 96 –precision = fp32
- python nvidia-examples / cnn / resnet.py –layers = 50 –batch_size = 192 –precision = fp16
- namd2 + p24 + setcpuaffinity +闲置+设备0 apoa1.namd
非常感谢技嘉提供我们在测试中使用的GeForce RTX™3080 GAMING OC 10G!
结果
这些结果我们使用RTX Titan和RTX 3080在上面列出的系统和软件上运行。
基准工作 | RTX3080 | RTX Titan |
---|---|---|
TensorFlow 1.15,ResNet50 FP32 | 462张/秒 | 373张/秒 |
TensorFlow 1.15,ResNet50 FP16 | 1023张/秒 | 1082张/秒 |
NAMD 2.13,Apoa1 | 0.0285 day/ns(35.11 ns/day) | 0.0306 day/ns(32.68 ns/day) |
NAMD 2.13,STMV | 0.3400 day/ns (2.941 ns/day) | 0.3496 day/ns(2.860 ns/day) |
我曾尝试运行过去运行过的Big_LSTM基准测试,但是无论我将batch_size设置为多小,它都会因内存不足错误而失败。我也曾在RTX Titan上使用TensorFlow 2.2,但没有时间在RTX 3080上执行此操作。
您会看到,与价格昂贵得多的RTX Titan(具有24GB的昂贵内存)相比,售价700美元的RTX 3080具有出色的性能。我没有直接与其他卡进行比较,因为RTX Titan是我当时可用的卡。
注意:与我以前使用NGC TensorFlow容器早期版本进行的测试相比,RTX Titan的这些结果有了很大的改进。对于fp16结果尤其如此,您将在下表中看到。
比较图
我不会显示任何带有NAMD结果的图表,因为将需要更多的CPU内核来平衡性能,以更好地区分不同的GPU。我的猜测是,(1或2个)RTX 3080在用于NAMD的AMD TR 3990x或3970x平台上将是出色的。
这些是旧测试的结果,新结果混合在一起!
从图中可以看出,RTX3080正在接近2个RTX 2080Ti GPU的性能!
同样,RTX3080在混合精度fp16方面表现出色。我希望通过新的驱动程序和一些CUDA补丁程序可以改善此数字。RTX Titan在fp16 1082 img / sec和653 img / sec的基础上进行了大幅改进!
注意:这些是混合的结果,使用的是使用较旧的NGC TensorFlow-1.13容器进行测试所得的数字。新的TensorFlow-1.15版本已进行了重大改进。
结论
NVIDIA正在保持摩尔定律的“精神”!基于“安培” GPU的RTX 3080在每美元性能方面迈出了重要的一步。这篇文章中呈现的结果是初步的。随着驱动程序的成熟以及软件开发人员对其应用程序进行调整以提高体系结构的性能,它们只会变得更好。
我可以告诉您,GeForce 30系列没有Ampere Tesla GPU的一些不错的功能。不支持MIG(多实例GPU),与Tesla A100相比,双精度浮点性能非常差(我编译并运行了nbody作为快速检查)。但是,对于许多适合使用fp32和fp16的应用程序来说,这些新的GeForce RTX30 GPU看起来将成为非常好的且具有成本效益的计算加速器。