本文最后更新于:2024年1月14日 晚上

在 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')

参考资料



文章链接:
https://www.zywvvd.com/notes/study/deep-learning/bug-fix/cuda-multiprocess-spawn-error/cuda-multiprocess-spawn-error/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

错误 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日
许可协议