【问题标题】:What makes GPUs so efficient in neural network computations?是什么让 GPU 在神经网络计算中如此高效?
【发布时间】:2016-09-13 15:44:54
【问题描述】:

最近我尝试在大型 CPU 服务器上实施和部署深度学习解决方案(多层 LSTM 网络,带有用于静态输入的附加层)。经过多次尝试,与我的个人计算机上的性能相比,我的速度仅提高了 3 倍。我听说 GPU 可能会做得更好。你能解释一下为什么在深度神经网络计算方面 GPU 比 CPU 好得多的确切原因是什么?

【问题讨论】:

  • 深度学习(和 AI)严重依赖矩阵和矩阵运算(即线性代数)。矩阵运算可以高度并行化,并且可以利用数百个线程(例如两个矩阵的乘法)——这就是 GPU 非常擅长的(也可以考虑 GPU 的内存带宽)

标签: performance neural-network gpu cpu


【解决方案1】:

GPU 的架构主要关注并行性,而 CPU 的架构则不然。这意味着 GPU 可以同时执行许多简单的操作;例如,GPU 可以每秒处理 60 次屏幕上每个像素的颜色(1920x1080 几乎是 200 万像素)。 通用 CPU 每个内核(物理或逻辑)可以有一个 ALU,因此您的 CPU 可能有 8/16 个 ALU。 GPU 可以有thousands of them

长话短说:CPU 可以非常快速地执行一些复杂的操作,而 GPU 可以非常快速地执行数千个非常简单的操作。此外,由于 GPU 会同时处理大量数据,因此它通常配备非常高速的 RAM 以避免瓶颈。

神经网络基本上是许多并行工作的小型“计算机”,因此 GPU 的架构更适合这项任务

【讨论】:

    【解决方案2】:

    训练深度神经网络的实际算法是反向传播算法。它涉及在网络的各个级别计算雅可比矩阵以及这些矩阵的乘法。 矩阵乘法步骤是 GPU 胜过 CPU 的地方,因为所涉及的操作是结构化的并且不需要复杂的机制(如分支预测、乱序调度)存在于 CPU 中。顺便说一句,您可能会争辩说,通过使用缓存阻塞、预取和手动编码汇编等技术,CPU 在矩阵乘法方面已经变得更好了。

    除了训练之外,神经网络的推理部分还利用了高效的矩阵乘法。这是因为各个层的输入和权重(参数)向量通常以张量形式存储。

    使用 GPU 的另一个好处是提供更好的内存带宽。 GDDR5x 接近 500 GB/s,而最先进的 DDR4 提供约 80-100 GB/s。因此,您可以获得约 5 倍的带宽改进,内存密集型神经网络计算可以利用这一点。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2015-07-07
      • 2015-05-01
      • 1970-01-01
      相关资源
      最近更新 更多