• 文档 >
  • 模块代码 >
  • torch >
  • torch.multiprocessing
快捷键

torch.multiprocessing 的源代码

# mypy: 允许未类型化定义
"""torch.multiprocessing 是对原生 :mod:`multiprocessing` 模块的封装。

它注册了自定义的 reducer,这些 reducer 使用共享内存来提供共享
同一数据在不同过程中的不同视角。一旦张量/存储被移动到
共享内存(见 :func:`~torch.Tensor.share_memory_`),就可以将其发送到其他进程而无需复制。
API 与原始模块 100%兼容 - 只需更改

该 API 与原始模块 100%兼容 - 只需更改
将 `import multiprocessing` 替换为 `import torch.multiprocessing` 以拥有所有功能
通过队列或通过其他机制发送的张量,移动到共享内存
中。

由于 API 的相似性,我们没有记录这个包的大部分内容
内容,并建议参考原始模块的优秀文档。
""
导入 多进程
导入 系统

导入 火炬

from .reductions 导入 init_reductions


全部 = ["设置共享策略", 获取分享策略, 获取所有共享策略]


from 多进程 导入 *  # noqa: F403


全部 += 多进程.全部  # noqa: PLE0605 类型:忽略[attr-defined]


此调用向此模块添加了一个针对 Linux 的 prctl(2)包装函数。
# 请参阅 https://github.com/pytorch/pytorch/pull/14391 获取更多信息。
火炬._C._multiprocessing_init()


添加辅助函数以启动 N 个进程并等待其中任何一个完成。这依赖于 `mp.get_context`,该功能是在 Python 3.4 中添加的。
这取决于 `mp.get_context`,该功能是在 Python 3.4 中添加的。
from .spawn 导入 (
    环境变量并行启动,
    进程上下文,
    进程退出异常,
    处理引发的异常,
    启动,
    启动上下文,
    启动进程,
)


如果 系统模块.平台 == "darwin" 或者 系统模块.平台 == win32:
    分享策略 = "文件系统"
    所有分享策略 = {文件系统}
否则:
    分享策略 = 文件描述符
    所有分享策略 = {"文件描述符", "文件系统"}


[文档]def set_sharing_strategy(new_strategy): "设置共享 CPU 张量的策略。" Args: 新策略(str 类型):所选策略的名称。应该是 :func:`get_all_sharing_strategies()` 返回的值之一。 the values returned by :func:`get_all_sharing_strategies()`. """ 全局_共享策略 断言新策略在_all_sharing_strategies 中 _sharing_strategy = new_strategy
[文档]def get_sharing_strategy(): 返回当前共享 CPU 张量的策略。 返回 _sharing_strategy
[文档]def get_all_sharing_strategies(): 返回当前系统支持的共享策略集合。 返回所有共享策略
定义
设置线程名称(姓名: str) -> : 设置当前线程的名称。 参数: name (str): 当前线程的名称。 """ 火炬._C.设置线程名称(姓名) 定义 获取线程名称() -> str: 获取当前线程的名称。 返回值: str: 当前线程的名称。 """ 返回 火炬._C.获取线程名称() 初始化缩减()

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源,获取您的疑问解答

查看资源