7
我试图找出在两个GPU之间均匀分割seq2seq网络的内存负载的最具战略性的方法。在TensorFlow中GPU之间均匀分割RNN内存消耗
对于卷积网络来说,任务要简单得多。但是,我试图找出如何最大限度地利用2 Titan X的内存。我们的目标是建立最大的网络,合并的24GB内存将允许。
一个想法是将每个RNN层放置在单独的GPU中。
GPU1 --> RNN Layer 1 & Backward Pass
GPU2 --> RNN Layer 2,3,4
但是,反向计算需要大量的内存。因此,另一个想法是在一个GPU上执行整个正向传递,并在单独的GPU上执行反向传递。
GPU1 --> Forward Pass
GPU2 --> Backward Pass
(然而,GPU2仍占大多数内存负载)
有什么办法来衡量GPU如何内存中有多少被使用?这将使我们能够弄清楚如何在每个GPU“充满”之前使每个GPU最大化。
一旦使用了2个GPU,我最终会使用4个GPU。不过,我认为最大化2个GPU是第一步。