torch.multiprocessing.spawn——执行多进程并行任务
1. torch.multiprocessing模块
torch.multiprocessing是pytorch中用于多进程并行计算的模块
2. torch.multiprocessing.spawn方法
用于在多个进程中,并行地执行指定的函数
和torch.distributed.lauch/ torchrun不同,这两个是命令行工具,用于并行执行指定的Python脚本
import torch.multiprocessing as mp
mp.spawn(fn, args=(), nprocs=1, join=True, deamon=False, start_method='spawn')
参数:
- fn:目标函数
- args: 传递给目标函数地参数,是一个元组
- nprocs:要启动的进程数量
- join:是否等待所有进程完成后再返回
- daemon:如果为True,则子进程会作为守护进程运行
- start_method:进程启动的方法,可以是‘spawn’,'fork',或'forkserver', 默认是‘spawn’,因为在多GPU场景中更安全
示例: