译者:hijkzzz
torch.multiprocessing 是一个本地 multiprocessing
模块的包装. 它注册了自定义的reducers, 并使用共享内存为不同的进程在同一份数据上提供共享的视图. 一旦 tensor/storage 被移动到共享内存 (见 share_memory_()
), 将其发送到任何进程不会造成拷贝开销.
此 API 100% 兼容原生模块 - 所以足以将 import multiprocessing
改成 import torch.multiprocessing
使得所有的 tensors 通过队列发送或者使用其它共享机制, 移动到共享内存.
因为 APIs 的相似性, 我们没有为此包提供足够的文档, 所以推荐参考非常优秀的原生进程模块文档.
警告
如果主进程意外退出 (比如 因为一个信号的到来), Python’s multiprocessing
有时候会无法请理它的子进程. 这是一个众所周知的警告, 因此,如果你在中断解释器后发现任何资源泄漏,这可能意味着你刚刚发生了这种情况.
torch.multiprocessing.get_all_sharing_strategies()
返回当前系统支持的共享策略的集合.
torch.multiprocessing.get_sharing_strategy()
返回当前的 CPU tensors 共享策略.
torch.multiprocessing.set_sharing_strategy(new_strategy)
设置一个新的 CPU tensors 共享策略.