RuntimeError: Cannot re-initialize CUDA in forked subprocess.

这篇具有很好参考价值的文章主要介绍了RuntimeError: Cannot re-initialize CUDA in forked subprocess.。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:        

        尝试使用python自带的multiprocessing模块调用torch模型使用cuda加快预测速度,报错RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the ‘spawn’ start method

原因:

        在Python3中使用 spawn 或 forkseverver 启动方法才支持在进程之间共享CUDA张量。而multiprocessing 是使用 fork 创建子进程,不被 CUDA 运行时所支持。

        fork和spawn是构建子进程的不同方式:文章来源地址https://www.toymoban.com/news/detail-629383.html

fork spawn
分叉 产卵
继承 非继承
从头构建一个子进程,父进程的数据拷贝到子进程的空间中,拥有自己的Python解释器
变量具有与父进程中相同的id
N 在每个子进程开始时导入模块
子进程获取在 name == main 块中定义的变量 N

解决方法:

if __name__=='__main__':
    torch.multiprocessing.set_start_method('spawn')

参考链接:

  • pythonRuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing_FakeOccupational的博客-CSDN博客
  • 日志提示“RuntimeError: Cannot re-initialize CUDA in forked subprocess”_AI开发平台ModelArts_故障排除_训练作业_GPU相关问题_华为云
  • pytorch中使用cuda进行多任务multiprocessing_YNNAD1997的博客-CSDN博客

到了这里,关于RuntimeError: Cannot re-initialize CUDA in forked subprocess.的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10+2019+cuda11.6 nvcc fatal : Cannot find compiler ‘cl.exe‘ in PATH

    第一步: 在系统变量无名称变量 Path 列表中添加如下 2 个位置 C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC*14.27.29110*(根据自己环境该码不同)binHostx64x64 C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDE 第二步: 在系统变量中新建一个变量起名为 LIB,

    2024年02月09日
    浏览(43)
  • -bash: fork: Cannot allocate memory处理

    /proc/sys/kernel/pid_max是一个系统内核参数,用于设置系统可以分配的最大进程ID(PID)数。每个新创建的进程都会被分配一个唯一的PID,该值决定了系统能够支持的最大进程数量。 /etc/security/limits.d/90-nproc.conf是一个配置文件,用于设定每个用户或用户组在系统中可同时运行的最

    2024年02月13日
    浏览(44)
  • RuntimeError: No CUDA GPUs are available

    在之前运行代码时正常没有任何问题,但是后面莫名其妙突然报错:RuntimeError: No CUDA GPUs are available 一开始还有这个:No CUDA runtime is found, using CUDA_HOME=\\\'/usr/local/cuda\\\' 这里主要有几个考虑的方面: 1、用于运行代码的GPU号设置问题 如果你的代码里面有下面这句话 (1)如果使用的

    2024年02月16日
    浏览(42)
  • 报错解决:RuntimeError: CUDA out of memory.

    在进行深度学习的模型训练时,经常会遇到显存溢出的报错: RuntimeError: CUDA out of memory. 输出如下图所示: 打开一个终端,输入以下命令查看GPU使用情况: 输出如下图所示: 使用nvidia-htop可以进一步查看更为详细的内容。 nvidia-htop:A tool for enriching the output of nvidia-smi. 可以通

    2024年02月12日
    浏览(61)
  • 解决RuntimeError:No CUDA GPUs are available

    解决RuntimeError:No CUDA GPUs are available 如果本来显卡是能用的 版本这些也能对的上。 基本解决方法为 在使用之前检查cuda是否可用 不检测默认不可用。 或者在文件头加入import torch torch.cuda.current_device() torch.cuda._initialized = True // 检测一下cuda是否可用 print(torch.cuda.is_available()) F

    2024年02月03日
    浏览(37)
  • 解决:RuntimeError: CUDA error: device-side assert triggered

    @[TOC]解决办法:RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at

    2024年02月12日
    浏览(37)
  • RuntimeError: CUDA error: an illegal memory access was encountered

    后续发现其实是某张卡有问题, 0~3一共4个GPU,只在使用0号GPU的时候会出问题 0号卡似乎是被某个进程锁了,还是怎么样,不用那个卡就没事了 其实不难发现,我报错的位置基本都是从 gpu 往 cpu 转换的时候出现的问题。 因此考虑是不是cpu内存不太够了,所以内存访问发生错

    2024年01月17日
    浏览(58)
  • RuntimeError: CUDA out of memory.【多种场景下的解决方案】

    RuntimeError: CUDA out of memory.【多种场景下的解决方案】 🌈 个人主页:高斯小哥 🔥 高质量专栏:【Matplotlib之旅:零基础精通数据可视化】 🏆🏆关注博主,随时获取更多关于深度学习、PyTorch、Python领域的优质内容!🏆🏆   随着深度学习的繁荣发展,GPU已成为推动这一浪

    2024年02月22日
    浏览(51)
  • BUG:RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously repo

    参考链接 当运行以下代码出现报错: 报错信息如下 RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. 报错完整截图 报错的信息告诉我们,编号\\\"1\\\"是无效的设

    2024年02月12日
    浏览(54)
  • 已解决RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously repo

    参考链接 当运行以下代码出现报错: 报错信息如下 RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. 报错完整截图 报错的信息告诉我们,编号\\\"1\\\"是无效的设

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包