问题解决 |关于CUDA的代码错误总结以及解决方法

news2024/9/29 9:32:37

本博客主要关于常见的CUDA的代码错误总结以及解决方法~

1.RuntimeError运行错误

1.1.RuntimeError: CUDA error: out of memory

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.

错误解析:

程序本来跑的好好的,代码没有问题,显存还都没用,且显存充足,可能是GPU被占用,

可能是因为之前训练的缓存问题,因为是在docker容器内运行的,所以先stop docker容器,再start容器就好啦~

1.2.RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

可能出现的错误

  • pytorch和cuda的版本不对问题

  • 显存不足

参考别的博客试验代码

# True:每次返回的卷积算法将是确定的,即默认算法。
torch.backends.cudnn.deterministic = True
# 程序在开始时花额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法
# 实现网络的加速。
torch.backends.cudnn.benchmark = True

最终解决方案

把numwork设置为0

1.3.RuntimeError: CUDA out of memory

①RuntimeError: CUDA out of memory. Tried to allocate 152.00 MiB (GPU 0; 23.65 GiB total capacity; 13.81 GiB already allocated; 118.44 MiB free; 14.43 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

超出GPU所占的内存,本地的GPU资源应该完全够用的,然而,在pytorch训练过程中,由于梯度下降等神经网络参数的反向传播和正向参数,会占用大量GPU内存,因此需要减小batch。

解决办法:

  • 缩小batch,即减少单词训练的样本大小

  • 释放显存:torch.cuda.empty_cache()

②torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 23.65 GiB total capacity; 22.73 GiB already allocated; 116.56 MiB free; 22.78 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

torch.cuda.OutOfMemoryError: CUDA没有内存了。尝试分配128.00 MiB(GPU 0;总容量23.65 GiB;已分配22.73 GiB;空闲116.56 MiB;PyTorch共保留22.78 GiB)如果保留的内存>>分配的内存,尝试设置max_split_size_mb以避免碎片化。 请参阅内存管理和PYTORCH_CUDA_ALLOC_CONF的文档。

错误原因分析:

在深度学习模型训练时,代码每训练一次,未释放显存

解决方案:

查看nvidia-smi

此时GPU无程序运行,仍有显存被占用,如图

利用fuser查询

fuser -v /dev/nvidia*

(选择)如果输入上述命令,提示没有fuser,那么安装

apt-get install  psmisc

如果出现Unable to locate package XXX,那么

apt-get update

强制(-9)杀掉进程,输入以下命令

kill -9 PID

实例图

释放显存就好啦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day09 Python面向对象和异常详解

文章目录 第六章 Python面向对象6.1. 面向对象基础6.1.1. 面向对象与面向过程6.1.2. 类与对象6.1.3. 类的设计与对象的实例化6.1.4. 构造方法6.1.5. 魔术方法6.1.6. 类与类的关系使用到另一个类的对象完成需求使用到另一个类的对象作为属性 6.2. 面向对象进阶6.2.1. 封装6.2.1.…

开启AI原型设计新时代:数字创意的崭新前景

随着人工智能生成内容(AIGC)相关研究的突破,人类社会正面临一个全新的转折点。诸如多模态、可控扩散模型和大型语言模型等技术正在直接改变创意设计领域的生产过程。 在AIGC领域中,根据输入内容和输出形式的差异,我们…

【MySQl】索引及其B+树

目录 一、索引初识和测试数据的构建 二、磁盘 三、MySQL、OS、磁盘的交互方式(InnoDB 存储引擎) 四、MySQL中索引和page的理解 1、为什么MySQL和磁盘进行IO交互的时候,要采用page的方案进行交互,而不是采用用多少&#xff0c…

O2O跑腿快递可以解决哪些问题?

各大电商巨头都已经布局了O2O快递,就目前国内的快递环境而言,基本已经形成了四通一达局面,那么O2O同城配送目前有何痛点呢?下面小编就来为大家分析分析,感兴趣的朋友快来一起了解了解吧! 一、O2O快递目前存在哪些痛点? 我们国…

力扣题库刷题笔记14--最长公共前缀

1、题目如下: 2、个人Python代码实现 首先讲一下思路,通俗的来讲,就是依次比较字符串里面所有的字符,如果相同就是公共前缀,如果不同,后面就不用比较了,所以主要就是以下几点: 1、外…

[Leetcode] 0026. 删除有序数组中的重复项

26. 删除有序数组中的重复项 点击上方,跳转至Leetcode 题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语…

好用到爆的数据库软件,还能兼容Excel,可以抛弃“VF”和Access

现在大部人已经不再用VF “VF”这个缩写,也只是停留在那个时代里,很多人已经不知道原来的样子,但有的人却还感慨万千。 懂得人自然都懂! 微软的两款数据库软件:一个是office的Access,另一个就是“VF” VF…

自定义数据类型:结构体,枚举,联合

之前我们已经了解过结构体,这篇文章再来深入学习的一下,然后再学习其他自定义数据类型,枚举和联合 目录 1.结构体 1.1 结构体类型的声明 1.2 结构体的自引用 1.3 结构体变量的定义和初始化 1.4 结构体内存对齐 1.5 结构体传参 1.6 结…

【Shermo学习】使用shermo批量读入ORCA频率计算结果文件,并批量输出热力学校正数据

使用shermo批量读入ORCA频率计算结果文件,并批量输出热力学校正数据 安装与运行简单任务示例批量输出热力学校正数据 Shermo是北京科音自然科学研究中心卢天老师开发的一个程序,可以用来处理量子化学计算过程中的热力学数据。本文基于Shermo程序&#xf…

数据库设计篇-范式与反范式

概述 一般地,在进行数据库设计时,应遵循三大原则,也就是我们通常说的三大范式,即第一范式要求确保表中每列的原子性,也就是不可拆分;第二范式要求确保表中每列与主键相关,而不能只与主键的某部…

抖音林客生活服务商平台

抖音林客生活服务服务商平台是为了方便服务商管理自己的服务和订单而设计的平台。以下是其主要功能: 服务管理:服务商可以在平台上添加自己提供的服务,并设置服务的价格、规格等信息; 订单管理:服务商可以查看…

【Git总结】

第三章Git常用命令 Git注意首次 安装必须设置一下用户签名,否则无法提交代码。 vim 文件名(hellow.txt)//进入编辑模式 cat 文件名(hellow.txt)//查看文件内容 i进入编辑模式,(Esc):wq保存退出 &#…

掌握imgproc组件:opencv-图像处理

图像处理 1.线性滤波:方框滤波、均值滤波、高斯滤波1.1 平滑处理1.2 图像滤波与滤波器1.3 线性滤波器的简介1.4 滤波和模糊1.5 邻域算子与线性邻域滤波1.6 方框滤波1.7 均值滤波1.8 高斯滤波1.9 线性滤波综合案例 2.非线性滤波:中值滤波、双边滤波2.1 中…

python自定义序列类深入学习

一:自定义序列类 1、序列类型的分类 容器序列: list 、 tuple、deque 扁平序列: str 、bytes、bytearray、arry.array 可变序列: list 、deque、bytearray、array 不可变: str、tuple、bytes 容器序列表示可以放置任意…

计算机中CPU、内存、缓存的关系

CPU(Central Processing Unit,中央处理器) 内存(Random Access Memory,随机存取存储器) 缓存(Cache) CPU、内存和缓存之间有着密切的关系,它们共同构成了计算机系统的核…

软考高级系统架构设计师(八) 基于中间件的开发实际项目

目录 中间件的用途 中间件技术 中间件的特点 中间件的十大优越性 企业应用集成 轻量级架构 Struts框架 spring Hibernate 实际项目举例 产品逻辑大图 gRPC的接口规范 关键中间件交互 整体架构设计 大数据素材底层处理 业务交互大图 底层数据素材加工大图 中间…

这些年你走了多少弯路?接口性能测试你真的懂了?进阶测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试关注 响…

java + opencv对比图片不同

1,去官网下载opencv,下载的时候需要注册一个 Oracle 账户,分分钟就能注册。然后安装。我下的是4.7的。 2,找到jar包放进项目里 3,项目结构,比较简单 4,把下载的文件放进C盘 5,主类代…

未来独角兽!安全狗入选2023年福建省数字经济核心产业领域创新企业名单

近日,福建省数字福建建设领导小组办公室公布了入选2023年全省数字经济核心产业领域创新企业名单。 作为国内云原生安全领导厂商,安全狗凭借综合安全能力入选名单,荣膺“未来独角兽”称号。 厦门服云信息科技有限公司(品牌名&#…

7DGroup性能实施项目日记4

经过了一个十一假期,我们的日记虽然没有更新,但我们的项目并没有停止。 虽然这个项目是一个依托性能培训的项目,但对我来说,这和真实的项目并无二致。我们花了几万(根据一期的培训,估计在3万-4万左右&…