Parallel processing 一次为一个数据集使用多个GPU,而不是在tensorflow中拆分数据集

Parallel processing 一次为一个数据集使用多个GPU,而不是在tensorflow中拆分数据集,parallel-processing,tensorflow,deep-learning,gpu,Parallel Processing,Tensorflow,Deep Learning,Gpu,我知道在训练DNN时,使用多个GPU的通常方法是分割数据集并将每个分割的数据集分配给每个GPU 然而,有没有一种方法可以使用多个GPU来更快地计算不可分割的整个数据集?我的意思是,当GPU用于训练网络时,矩阵乘法在单个GPU内并行化。我可以通过同时使用多个GPU来加快这个矩阵乘法吗 例如,对于数据集,我只有一张图片。因为我没有多个图片用于拆分和分发到多个GPU,所以我想利用所有GPU来计算这一个图片 在Tensorflow中可能吗?我在网上搜索过,但什么也没找到,因为这是一个非常罕见的病例 您正

我知道在训练DNN时,使用多个GPU的通常方法是分割数据集并将每个分割的数据集分配给每个GPU

然而,有没有一种方法可以使用多个GPU来更快地计算不可分割的整个数据集?我的意思是,当GPU用于训练网络时,矩阵乘法在单个GPU内并行化。我可以通过同时使用多个GPU来加快这个矩阵乘法吗

例如,对于数据集,我只有一张图片。因为我没有多个图片用于拆分和分发到多个GPU,所以我想利用所有GPU来计算这一个图片


在Tensorflow中可能吗?我在网上搜索过,但什么也没找到,因为这是一个非常罕见的病例

您正在尝试做类似的事情。在tensorflow中这样做有点麻烦

一种使用两个GPU卡并行化matmul的方法
A X B=C
A,B,C
是形状为
(m,k)
(k,n)
(m,n)
的矩阵。 你可以:

  • A
    拆分为
    A1
    A2
    ,形状为
    (m/2,k)、(m/2,k)

  • A1
    放在GPU1上,将
    A2
    放在
    GPU2上

  • B
    复制到两个GPU

  • 同时计算
    A1 X B=C1
    A2 X B=C2

  • 连接
    C1
    C2
    以获得
    C

  • Tensorflow提供了这样的操作符,因为B应该在两个gpu上复制,所以您可以将B放置在gpu上