晓查发自凹非寺
量子位报道公众号 QbitAI
花将近一半的钱,买性能 2 倍的显卡,真香。
在本周的产品发布会上,英伟达推出了 RTX 30 系列显卡,只要 5499 元的价格,就能买到比 1 万元 RTX 2080Ti 性能高出一倍的显卡。
更多的 CUDA 核心、张量核心将浮点算力提升 2 倍,GPU 的 AI 性能得以大幅提升。
但发布会上另一项功能引起了机器学习社区的注意,那就是RTX IO,有了它以后你“炼丹”的速度可能更快了。
什么是 RTX IO?
RTX IO 技术允许 GPU 在不使用 CPU 的情况下,将游戏素材数据直接从 SSD 加载到 GPU 的显存中。
过去,系统读取固态硬盘(SSD)里的数据时,需要由 CPU 来处理,然后释放到内存(RAM)中,再由 CPU 交给 GPU。
这样一来一回,浪费了大量的时间不说,也浪费了 GPU 自身的解压能力。如果以 14GB/s来全速读取 PCIe 4.0 SSD 的压缩数据,需要消耗 24 个 CPU 核心。
尤其是个人开发者,一般不会用到这么高规格的 CPU。
RTX IO 的作用就是解放 CPU,用 GPU 来加速读取压缩数据。数据不会流过 CPU 和系统内存,而是直接交给 GPU 解压,再放入显存(VRAM)中。
英伟达表示,这项技术最多可以将数据I/O性能提升 100 倍。甚至 PCIe 4.0 SSD 的读取极限已经跟不上 GPU 的解码能力了。
虽然该功能主要是面向游戏玩家,但对 AI 开发者来说也有重大意义。
因为 AI 的训练和推理一般都是在 GPU 上进行的,传统的数据读取方式已经制约了“炼丹”的速度。
对于训练大型数据模型,通常将数据加载和卸载到显存上是 AI 工作负载的最大瓶颈。从 CPU 切换到 GPU 计算时,加载训练数据通常是 pipeline 中最慢的部分。
一位开发者表示,在 TensorFlow 或 PyTorch 中运行 AI 模型时,从 GPU 加载和卸载数据会消耗大量时间。
这导致对于较小的模型,用 GPU 实际计算的时间反而比 CPU 更长。
虽然 GPU 训练和更新参数的速度要更快,但是向 GPU 加载和卸载数据比 CPU 慢得多,导致 CPU 训练速度反而更快的现象。
专业卡技术首次下放
其实英伟达的 GPU 直连技术早已有之,在 RTX 30 系列显卡发布以前,英伟达就有一个叫做GPUDirect的技术。
这也是在 SSD 和 GPU 之间建立直连通道,但是 GPUDirect 仅支持Tesla和Quadro专业级显卡。
英伟达过去的测试数据表明了这项技术对计算速度的巨大提升。
-
直接在存储设备与 GPU 之间传输数据,带宽提高了 2 到 8 倍。
-
降低延迟,读取带宽更平滑,实测端到端延迟降低了 3.8 倍。
-
对 CPU 负载的侵入较小,不会干扰 GPU 负载。GPU 占用率接近零。
-
GPU 的I/O带宽提高到 215GB/s,而过去的 CPU 仅有 50 GB/s。
还有,在去年的 GPU 技术大会上,英伟达展示 RAPIDS 开源软件项目中,通过数据直连,让 GPU 处理数据帧加速了 1.5 至 8 倍。
# Timing Pandas
# Output: 82.2 ms per loop
%timeit pandas_df.a.mean ()
# Timing cuDF
# Output: 5.12 ms per loop
%timeit cudf_df.a.mean ()
RTX IO 的推出,意味着 3000 系列可能是我们在消费级 GPU 中首次数据直连的技术。
如果你从事计算机视觉的研究,那么 RTX IO 也许可以充分利用 GPU 解压图像的能力。
而且 RTX IO 现在仅支持 Windows 操作系统,未来何时支持 Linux 还是未知数。
像 Keras,PyTorch 或 TensorFlow 之类的通用库也没有提供支持,只有等到这些库更新后,才能方便直接调用。
不过,RTX 30 系列的性价比已经足够高,即使短期内看不到 RTX IO 对机器学习的支持,也值得购。
那么,你期待 RTX IO 功能吗?你觉得它会对“AI 炼丹”产生重大影响吗?
参考链接:
https://www.reddit.com/r/MachineLearning/comments/ilvkyi/d_nvidias_rtx_3000_series_and_direct_storage_for/
https://developer.nvidia.com/gpudirect