Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以在多个GPU中存储数据,并使用Pyrotch计算GPU上的平均值?_Python_Pytorch_Multi Gpu - Fatal编程技术网

Python 是否可以在多个GPU中存储数据,并使用Pyrotch计算GPU上的平均值?

Python 是否可以在多个GPU中存储数据,并使用Pyrotch计算GPU上的平均值?,python,pytorch,multi-gpu,Python,Pytorch,Multi Gpu,我最近在学习Pytork,我想到了这个问题 当提到多GPU时,我可以看到许多关于“DataParallel”的教程。它为不同的GPU拆分计算,然后合并结果 这个问题怎么样?我希望数据存储在不同的GPU中,然后计算它们在GPU上的平均值。例如,如果我有4个形状相同的张量: tensor\u gpu1=tensor\u c1.to(设备1) 张量_gpu2=张量_c2.to(设备2) 张量_gpu3=张量_c3.to(设备3) 张量_gpu4=张量_c4.to(设备4) ##然后我希望平均值仍然在G

我最近在学习Pytork,我想到了这个问题

当提到多GPU时,我可以看到许多关于“DataParallel”的教程。它为不同的GPU拆分计算,然后合并结果

这个问题怎么样?我希望数据存储在不同的GPU中,然后计算它们在GPU上的平均值。例如,如果我有4个形状相同的张量:

tensor\u gpu1=tensor\u c1.to(设备1)
张量_gpu2=张量_c2.to(设备2)
张量_gpu3=张量_c3.to(设备3)
张量_gpu4=张量_c4.to(设备4)
##然后我希望平均值仍然在GPU上计算(这意味着没有与CPU的通信)
##如果我只是总结和划分,它会起作用吗?
结果=(tensor_gpu1+tensor_gpu2+tensor_gpu3+tensor_gpu4)/4##尝试在不同的GPU上添加张量。

在读了更多的文章之后,现在我想知道这是否有效。据说,尝试添加CPU张量和GPU张量会导致错误。不同GPU上的张量如何?我需要几天才能访问可用的GPU,因此我现在无法尝试。

我不知道答案,但我发现这似乎很有用@Reactgular该站点确实给了我启发,特别是数据并行工作的图表。您可能还想在下面的位置查看“torch.distributed.reduce”。如果安装了Nvidia NCCL,此reduce应该能够使用Nvidia的优化NCCL reduce来执行分布张量的求和。一个快速的谷歌也出现了。搜索“def test_queue_reduction(self):”我不知道答案,但我发现这似乎很有用@Reactgular该站点确实给了我启发,特别是数据并行工作的图表。您可能还想在下面的位置查看“torch.distributed.reduce”。如果安装了Nvidia NCCL,此reduce应该能够使用Nvidia的优化NCCL reduce来执行分布张量的求和。一个快速的谷歌也出现了。搜索“def测试队列缩减(自我):”