错误 To use CUDA with multiprocessing, you must use the ‘spawn‘ start method 解决方案

本文最后更新于:2022年7月4日 上午

在 Linux 下多进程调用 CUDA 执行任务时可能会报错: To use CUDA with multiprocessing, you must use the ‘spawn‘ start method,本文记录解决方案。

问题原因

  • 操作系统为 Linux

  • 多进程调用程序

  • 程序中需要调用 CUDA

  • 调用多进程时使用的不是 spawn 模式

    Linux 默认调用多进程的方法为 fork,参考之前的说明

在此种情景中为了保证 CUDA 进程的隔离仅能使用 spawn 模式运行多进程任务,如果没有使用则会报出上述错误

解决方案

  • 需要强制 multiprocessing 使用 spawn 方法调用多进程
1
2
import multiprocessing
multiprocessing.set_start_method('spawn')

参考资料


错误 To use CUDA with multiprocessing, you must use the ‘spawn‘ start method 解决方案
https://www.zywvvd.com/notes/study/deep-learning/bug-fix/cuda-multiprocess-spawn-error/cuda-multiprocess-spawn-error/
作者
Yiwei Zhang
发布于
2022年2月24日
许可协议