为什么普通 GPU 的内存如此受限?

数据挖掘 神经网络 显卡
2022-03-01 00:07:07

我们经常发现 NN 训练过程可能会受到 GPU 内存大小的高度限制,例如在对象检测模型中,训练批量大小可能会限制为 1 或 2,这对那些长期从事此类任务的人造成了影响,并导致了许​​多针对这种有限的内存/批量大小场景的变通方法,强烈建议使用技巧。那么,为什么 GPU 内存被限制为,例如,普通 P100/V100 上的 16GB,而高性能工作站上的 CPU 高达 256GB RAM?Nvidia 发布 128GB V100 的障碍是什么?这样做的代价是什么?

2个回答

基本上,原因是因为 GPU 的内存要贵得多。这是因为 GPU 使用了非常高的内存带宽。普通 GTX 480 具有 384 位宽的总线,最大传输速率约为 180 GB/秒。但是,使用 192 位宽总线的 Intel i7 CPU 的最大值约为 30 GB/秒,具体取决于您使用的 RAM 类型。这意味着与 CPU 相比, GPU 中的数据传输速度大约快 5 倍。因此,GPU 的内存要贵得多,但您可以获得更高的传输率。

另外增加更多芯片,随后的容量增加可能最终会扰乱数据传输的时间。

简单的答案是,与 X 数量的 CPU 内存相比,生产 X 数量的 GPU 内存的成本更高。

从架构上讲,CPU 仅由几个内核和大量高速缓存组成,一次可以处理几个软件线程。相比之下,GPU 由数百个内核组成,可以同时处理数千个线程。