文章目录

  • 4. 我的解决
  • 1. 错误描述
  • 2. 自我尝试
    • 2.1 减小batch_size
    • 2.2 换卡改代码
  • 3. 调研情况

4. 我的解决

后续发现其实是某张卡有问题,

  • 0~3一共4个GPU,只在使用0号GPU的时候会出问题
  • 0号卡似乎是被某个进程锁了,还是怎么样,不用那个卡就没事了


其实不难发现,我报错的位置基本都是从gpucpu转换的时候出现的问题。

  • 因此考虑是不是cpu内存不太够了,所以内存访问发生错误了
  • 由于我使用的是容器,因此在docker-compose或者dockerfile里将配置项改为:
        shm_size: 64G  →     shm_size: 128G
    
  • shm_size,共享内存(shared memory)
  • 之后就基本不报错了。。。

1. 错误描述

例行吐槽,第一次遇到这个错误,我是非常无语的。以前是不报错的,和以前相比,不同的地方有

  1. 数据变多了,从80例变成了100例
  2. 换了个docker镜像,可能pytorch版本和cuda版本上有些问题
  3. 检查了代码,没有发生修改

2. 自我尝试

2.1 减小batch_size

感觉上可能会和显存有点关系吧

第一次报错

  • 结合自己的代码,我这个是在第一个epoch训练完成,validation阶段报的错(line 243
  • 报错后调整batch_size变小(10→8),继续报错

  • 不过上一步validation的地方已经走过去了,line 258报错
  • 说明把batch_size变小是有一定的效果的

按照这个思路继续把batch_size调小(8→5),又换了个位置报错。。

  • line 305报错

2.2 换卡改代码

换思路

  • 换了张卡,从0卡变到了1卡。。
  • 删除了非必须的CPU和GPU交换数据部分的代码
  • 依然报错
  • 用两张卡,batch_size设置10,不使用预训练模型,还是报错
  • 从头训练,单卡,batch_size=5
  • 从头训练,单卡,batch_size=4

    情况好了一点,都跑到第8个epoch了。但是还是断了

3. 调研情况

报错信息是CUDA丢出来的一个运行时错误,发生了非法内存访问。网上关于这个问题的讨论也很多,但是并没有发现有找到真正原因的。

很多都是靠感觉的

参考:

  • pytorch的github issue:RuntimeError: CUDA error: an illegal memory access was encountered

    • 这个回答好像有效的人比较多,一次惨痛的debug的经历-RuntimeError: CUDA error: an illegal memory access was encountered,这个人就是这么解决的
  • 另外还有一些是经验论的,
    • CSDN博客:[彻底解决]CUDA error: an illegal memory access was encountered(CUDA错误 非法访问内存)
  • yolo的GitHub issue:Cuda illegal memory access when running inference on *.engine #6311

RuntimeError: CUDA error: an illegal memory access was encountered相关推荐

  1. 再次遇到RuntimeError: CUDA error: an illegal memory access was encountered

    之前遇到过一次记录下来了,第一次遇到 翻看之前的记录,首先想着如何让pycharm准确地显示错误. 1:os.environ['CUDA_LAUNCH_BLOCKING'] = '1',模型前加这句, ...

  2. RuntimeError: CUDA error: an illegal memory access was encountered的解决方法

    在Transformer模型中遇到这个问题 参考方法:https://www.jianshu.com/p/e1a0b14916f9 原因 class Add_Norm(nn.Module):def _ ...

  3. CUDA RuntimeError: CUDA error: an illegal memory access was encountered

    我的CUDA version=11.4 百度.谷歌上能找的办法都找了,有各种解决办法 减小batch_size的 把所有net和输入都放入到相同设备的 net的train和eval状态检查的 防止内存 ...

  4. 【解决汇总:待更新】CUDA error: an illegal memory access was encountered with channels_last

    为方便查看,就直接贴图和网址了.仅供学习使用,如有侵权,请联系我删除. 一.调试方法: 链接 原文: Recently, I encountered "an illegal memory a ...

  5. CUDA error: an illegal memory access was encountered

    报错原因1: 这种报错的是模型model.输入数据(input_image.input_label)没有全部移动到GPU(cuda)上,或者没有移动到同一块gpu上. **温馨提示:**debug时一 ...

  6. torch.backends.cudnn.enabled = False会引起CUDA out of memory和CUDA error: an illegal memory access was

            一般来说,题目所示这种问题都是由batch_size的设置引起的,修改batch_size之后就能有效解决.但是,我今天遇到一种情况,这个问题不是由batch_size引起的,而是由t ...

  7. checkpoint = torch.load(args.state_dict) ->RuntimeError: CUDA error: out of memory

    进行eval,加载模型到gpu时,出现错误:RuntimeError: CUDA error: out of memory 疑似原因:有一个相似的模型(网络结构名相同,通道数不同)在另一块gpu上训练 ...

  8. RuntimeError: CUDA error: out of memory

    写在前面( 已解决) 记录一下很诡异的情况,实验室两台同样的电脑做服务器,相同的代码在一直使用的机子上是 ok 的,移到另一台配置好的电脑就开始在 model=model.cuda()的地方报错 正式 ...

  9. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encountered

    之前从没有遇到这样的问题,找了三个小时的bug和资料后,在此处发现了解决方案,他是这么说的: In my case the "top" and "bottom" ...

最新文章

  1. Linux下测试的c++的使用
  2. 谈谈WEB开发中的苦大难字符集问题
  3. AJAX的post请求与上传文件
  4. UVA 294 - Divisors (唯一分解)
  5. UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
  6. Eclipse——通过Eclipse Marketplace安装SVN插件subclipse以及简单使用
  7. MySQL 高级 函数
  8. (9) hibernate加载持久化对象的两种方式——get、load
  9. 《SPSS 统计分析从入门到精通(第2版)》一6.3 二项式检验
  10. Map对象与实体类Object对象转换
  11. 20200515每日一句
  12. 3种终极方法,彻底解决CDR不显示缩略图!
  13. 麻辣江湖服务器正在维护,7月18日例行维护更新公告
  14. 锁定计算机程序到任务栏,程序图标不能锁定到任务栏?这样做so easy啦!
  15. NLP自然语言处理-文本摘要简述
  16. 轻奢消费人群画像报告
  17. Verilog语言入门
  18. 2020年计算机应用基础试题二,2020年计算机应用基础试题及答案
  19. x / k向上取整转换为向下取整
  20. 免费开源的api接口管理系统,移动时代首选接口管理平台-doclever

热门文章

  1. LLC输出滤波电容选择
  2. 案例分享 | 基于Linkis+DSS构建合合信息一站式数据开发平台
  3. 算数基本定理和代数基本定理
  4. Base64编码解码C代码实现
  5. 日常中文短句翻译英文有哪些好方法?
  6. CreateWindow() -- 创建普通的窗口
  7. 一文了解SCI论文投稿全流程
  8. php imap读取邮箱邮件信息
  9. Studio3T 无限破解 (2019.3.0.0)
  10. OGRE的安装与配置