RuntimeError: CUDA error: an illegal memory access was encountered
文章目录
- 4. 我的解决
- 1. 错误描述
- 2. 自我尝试
- 2.1 减小batch_size
- 2.2 换卡改代码
- 3. 调研情况
4. 我的解决
后续发现其实是某张卡有问题,
- 0~3一共4个GPU,只在使用0号GPU的时候会出问题
- 0号卡似乎是被某个进程锁了,还是怎么样,不用那个卡就没事了
其实不难发现,我报错的位置基本都是从gpu
往cpu
转换的时候出现的问题。
- 因此考虑是不是cpu内存不太够了,所以内存访问发生错误了
- 由于我使用的是容器,因此在docker-compose或者dockerfile里将配置项改为:
shm_size: 64G → shm_size: 128G
- shm_size,共享内存(shared memory)
- 之后就基本不报错了。。。
1. 错误描述
例行吐槽,第一次遇到这个错误,我是非常无语的。以前是不报错的,和以前相比,不同的地方有
- 数据变多了,从80例变成了100例
- 换了个docker镜像,可能pytorch版本和cuda版本上有些问题
- 检查了代码,没有发生修改
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相关推荐
- 再次遇到RuntimeError: CUDA error: an illegal memory access was encountered
之前遇到过一次记录下来了,第一次遇到 翻看之前的记录,首先想着如何让pycharm准确地显示错误. 1:os.environ['CUDA_LAUNCH_BLOCKING'] = '1',模型前加这句, ...
- RuntimeError: CUDA error: an illegal memory access was encountered的解决方法
在Transformer模型中遇到这个问题 参考方法:https://www.jianshu.com/p/e1a0b14916f9 原因 class Add_Norm(nn.Module):def _ ...
- CUDA RuntimeError: CUDA error: an illegal memory access was encountered
我的CUDA version=11.4 百度.谷歌上能找的办法都找了,有各种解决办法 减小batch_size的 把所有net和输入都放入到相同设备的 net的train和eval状态检查的 防止内存 ...
- 【解决汇总:待更新】CUDA error: an illegal memory access was encountered with channels_last
为方便查看,就直接贴图和网址了.仅供学习使用,如有侵权,请联系我删除. 一.调试方法: 链接 原文: Recently, I encountered "an illegal memory a ...
- CUDA error: an illegal memory access was encountered
报错原因1: 这种报错的是模型model.输入数据(input_image.input_label)没有全部移动到GPU(cuda)上,或者没有移动到同一块gpu上. **温馨提示:**debug时一 ...
- torch.backends.cudnn.enabled = False会引起CUDA out of memory和CUDA error: an illegal memory access was
一般来说,题目所示这种问题都是由batch_size的设置引起的,修改batch_size之后就能有效解决.但是,我今天遇到一种情况,这个问题不是由batch_size引起的,而是由t ...
- checkpoint = torch.load(args.state_dict) ->RuntimeError: CUDA error: out of memory
进行eval,加载模型到gpu时,出现错误:RuntimeError: CUDA error: out of memory 疑似原因:有一个相似的模型(网络结构名相同,通道数不同)在另一块gpu上训练 ...
- RuntimeError: CUDA error: out of memory
写在前面( 已解决) 记录一下很诡异的情况,实验室两台同样的电脑做服务器,相同的代码在一直使用的机子上是 ok 的,移到另一台配置好的电脑就开始在 model=model.cuda()的地方报错 正式 ...
- caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encountered
之前从没有遇到这样的问题,找了三个小时的bug和资料后,在此处发现了解决方案,他是这么说的: In my case the "top" and "bottom" ...
最新文章
- Linux下测试的c++的使用
- 谈谈WEB开发中的苦大难字符集问题
- AJAX的post请求与上传文件
- UVA 294 - Divisors (唯一分解)
- UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
- Eclipse——通过Eclipse Marketplace安装SVN插件subclipse以及简单使用
- MySQL 高级 函数
- (9) hibernate加载持久化对象的两种方式——get、load
- 《SPSS 统计分析从入门到精通(第2版)》一6.3 二项式检验
- Map对象与实体类Object对象转换
- 20200515每日一句
- 3种终极方法,彻底解决CDR不显示缩略图!
- 麻辣江湖服务器正在维护,7月18日例行维护更新公告
- 锁定计算机程序到任务栏,程序图标不能锁定到任务栏?这样做so easy啦!
- NLP自然语言处理-文本摘要简述
- 轻奢消费人群画像报告
- Verilog语言入门
- 2020年计算机应用基础试题二,2020年计算机应用基础试题及答案
- x / k向上取整转换为向下取整
- 免费开源的api接口管理系统,移动时代首选接口管理平台-doclever