![](/img/trans.png)
[英]How to use sqlite across multiple (spawned) python processes via sqlalchemy
[英]How to get outputs in the same order as inputs with multiple spawned processes running on multiple GPUs and batches of data processed by each?
我正在使用 Pytorch 分布式数据并行方法并生成多个进程,每个进程在单独的 GPU 上运行。我正在使用 Pytorch 分布式数据采样器和数据加载器来将输入数据批量加载到每个进程。 我的问题:
2). 我的第二个问题是如何以与输入数据相同的顺序检索 output 数据,以便最终合并的 output(将所有进程的输出组合在一个数据结构中)与原始输入的顺序相同,并且每个 output 对应于正确的输入
DistributedSampler
上的 PyTorch 文档不提供关于数据如何跨进程和设备分布的任何保证,除了它实际上是跨进程和设备分布的事实。 您不应将应用程序设计为依赖于外部 package 的实现细节; 否则,您的应用程序可能会在更新 PyTorch 一天后突然失败,并且您不知道为什么(或者甚至可能无法开始)。 如果出于某种原因,您绝对需要以非常特定的方式分发数据,那么您应该推出自己的解决方案。 DistributedDataParallel
的文档建议,如果您使用带有 N 个 GPU 的单个主机,则应该启动 N 个进程,每个进程指定一个 GPU。一个简单的解决方案是将进程的等级设置为等于指定的 GPU 设备 ID; 这反过来可以用于自定义采样器 class 到 select 适当的样本索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.