pytorch笔记:清理GPU内存

1 Control-C 中止运行GPU 存储没有及时释放

  • 在使用 GPU 进行深度学习训练时,通过 Control-C 中止程序后,有时会发现 GPU 内存没有及时释放
  • 这主要是因为以下几个原因
    • 进程未完全终止
      • 当我们按下 Control-C 时,只是发送了一个中断信号(SIGINT)给运行的程序。
      • 这种信号通常会触发程序中的中断处理逻辑,但有时程序可能没有正确处理这个信号,导致部分资源没有被释放,进程没有完全退出。
    • 内存分配未清理
      •  PyTorch在运行时会分配大量的 GPU 内存用于存储模型参数、梯度和中间结果。
      • 如果程序在中断时没有进行适当的清理操作,这些分配的内存可能会保持分配状态,导致内存没有及时释放。
    • 线程和子进程
      • 深度学习程序通常会创建多个线程或子进程来并行处理数据或计算任务。如
      • 果这些线程或子进程在主进程被中断后没有正确终止,它们可能会继续占用 GPU 资源。

2 解决方法

2.1 nvidia-smi --gpu-reset

nvidia-smi --gpu-reset -i [gpu_id]
  • 这个命令会重置指定的 GPU(通过 -i [gpu_id] 指定)
    • 重置操作会影响所有使用该 GPU 的进程,包括当前用户和其他用户的所有进程。
    • 所有在 GPU 上运行的任务都会被终止。

2.2 使用 PyTorch 手动释放内存

在程序开始时调用 torch.cuda.empty_cache() 可以清理任何先前运行的程序可能遗留的未释放内存

import torch
torch.cuda.empty_cache()# 你的程序后续

2.3 kill 对应进程

用top/htop找到相应程序的PID,再使用 kill 结束该进程

kill -9 [pid]

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

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

相关文章

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局、工具栏带中文提示 1.在vue.config.js 文件中添加 一下内容2.下载安装插件3.在Editor组件中引入插件4.使用Editor组件(特别注意要的加 v-if )5.bug 之 imageResize的 img的style丢失1.先创建一…

不是所有洗碗机都能空气除菌 友嘉灵晶空气除菌洗碗机评测

精致的三餐让你以为生活是“享受”,可饭后那些油腻的锅碗瓢盆却成了你我美好生活的最大障碍。想要只吃美食不洗碗,那一台优秀的洗碗机就必不可少了!今天,ZOL中关村在线要评测的就是这样一台不光洗得干净更能有效除菌抑菌的洗碗机—…

SpringBoo+vue3+vite整合讯飞星火3.5通过webscoket实现聊天功能(前端代码)附带展示效果

访问地址: 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/site 后端文档: SpringBoovue3整合讯飞星火3.5通过webscoket实现聊天功能(全网首发)附带展示效果_springboot websocket vue3-CSDN博客https://blog.csdn.net/qq_53722…

SAP MIGO 050 BADI:字段 GOITEM-XXXXX 未准备好输出

背景: MIGO过账时候需要根据某些条件更改某些字段的值,当要改的字段在前台不显示时,通过MB_MIGO_BADI~LINE_MODIFY去更改时,则会出现以下报错:MIGO050 解决方案1: 通过配置将该字段配置显示出来即可&…

【文末附gpt升级秘笈】关于“登月游戏”的详细内容介绍

当然可以。以下是关于“登月游戏”的详细内容介绍: 一、游戏背景与目标 “登月游戏”是一款基于1969年人类首次登陆月球事件而开发的计算机游戏。其背景设定在月球表面,玩家需要扮演宇航员,操控登月器在月球上实现软着陆。游戏的目标是在确…

【教师资格证考试综合素质——法律专项】未成年人保护法笔记以及练习题

《中华人民共和国未成年人保护法》 目录 第一章 总 则 第二章 家庭保护 第三章 学校保护 第四章 社会保护 第五章 网络保护 第六章 政府保护 第七章 司法保护 第八章 法律责任 第九章 附 则 介一.首次颁布:第一部《中华人民共和国未成年人保护法…

电影美学复古胶片特效视频转场模板 | Premiere Pro 项目工程文件

这个Premiere Pro项目工程文件是一个电影美学胶片特效视频转场模板,每个过渡效果都散发出一种有机的怀旧魅力,让人回忆起经典电影卷轴和模拟摄影的独特美感。 项目特点: 胶片烧伤过渡效果:包括从微妙的闪烁到大胆的爆发&#xff…

学习总结报告模板

学习总结报告模板1 --年10月15日进入--公司至今已近两周时间,通过这段时间的工作和学习,已经适应了新的工作环境,了解了公司的发展历史及企业文化、认清了公司的组织结构及配置,熟识了大部分的同事,掌握了公司的大部分…

pom.xml文件里面各个标签的作用

在 Maven 项目中&#xff0c;POM&#xff08;Project Object Model&#xff09;文件用于定义项目的基本信息、依赖、插件和其他构建设置。理解 POM 文件中的各个标签的作用非常重要。以下是常见标签及其作用的详细解释&#xff1a; 顶层元素 <project> 这个元素是 POM…

南充文化旅游职业学院领导一行莅临泰迪智能科技参观交流

6月18日&#xff0c;南充文化旅游职业学院旅游系副书记刘周、教务处教学运行与质量保障科科长及智慧旅游技术应用专业教研室主任李月娴、大数据技术专业负责人 龙群才、大数据技术专业专任教师 李昱洁莅临泰迪智能科技产教融合实训中心参观交流。泰迪智能科技董事长张良均、副总…

【CSS】css 的opacity属性作用是什么,原理是什么,怎么使用

CSS 的 opacity 属性作用 opacity 是 CSS 中的一个属性&#xff0c;它用于设置元素的不透明度。一个元素的 opacity 值定义了该元素和其所有子元素相对于其正常的不透明度的可见程度。opacity 的值范围是从 0&#xff08;完全透明&#xff09;到 1&#xff08;完全不透明&…

两种单例模式(保证线程安全)

开始前&#xff0c;球球各位读者给个三连吧&#xff0c;有错误感谢指出&#xff0c;谢谢 单例模式也叫单个实例&#xff0c;也就是这个类只有且只能有一个实例对象&#xff0c;这样一个类就叫做“单例”&#xff1b;单例模式有很多种&#xff0c;这里只介绍“饿汉模式”和“懒…

标准正交基下的坐标向量

标准正交基下的坐标向量 flyfish 标准正交基是指在二维或更高维空间中&#xff0c;由单位向量构成的一组基底向量&#xff0c;这些向量彼此正交且模长为1。在二维空间中&#xff0c;标准正交基通常由以下两个向量组成&#xff1a; e 1 ( 1 0 ) , e 2 ( 0 1 ) \mathbf{e}_1…

Anaconda使用笔记

一、添加国内镜像源 conda config --show channels #查看anaconda中已经存在的镜像源 conda config --set show_channel_urls yes #设置搜索时显示通道地址 conda config --set auto_activate_base false #基础环境在启动时不被激活 1.永久添加 conda con…

【Java】已解决Java中的java.util.NoSuchElementException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决Java中的java.util.NoSuchElementException异常 一、分析问题背景 java.util.NoSuchElementException是Java中常见的运行时异常&#xff0c;它通常发生在使用迭代器&#xf…

【Java基础】 多线程

Java 多线程编程是指在一个 Java 应用程序中同时运行多个线程。线程是一个程序执行的最小单位&#xff0c;它包含在进程中&#xff0c;利用多线程可以提高应用程序的性能和响应能力。多线程编程在 Java 中是一个重要的概念&#xff0c;尤其是在处理并发任务时。 一、线程的概念…

Java高手的30k之路|面试宝典|精通多线程(四)- 并发编程

并发编程中的问题 死锁 死锁是指在两个或多个线程的执行过程中&#xff0c;由于每个线程都在等待其他线程持有的资源&#xff0c;而无法继续执行&#xff0c;导致所有这些线程都处于阻塞状态&#xff0c;无法继续运行。 死锁的四个必要条件 根据Coffman的条件&#xff0c;死…

swagger下载文件名中文乱码、swagger导出文件名乱码、swagger文件导出名称乱码、解决swagger中文下载乱码bug

文章目录 一、场景描述&#xff1a;swagger导出文件名称乱码二、乱码原因三、解决方法3.1、方法一、在浏览器中输入地址下载3.2、方法二、swagger升级为2.10.0及以上 四、可能遇到的问题4.1、DocumentationPluginsManager.java:152 一、场景描述&#xff1a;swagger导出文件名称…

springboot与flowable(7):流程变量

一、启动时添加流程变量 拿第一个流程图举例&#xff0c;创建一个新的流程定义。 Testvoid contextLoads() {DeploymentBuilder deployment repositoryService.createDeployment();deployment.addClasspathResource("process01/FirstFlow.bpmn20.xml");deployment.…

android | MemoryLeakMonitor.jar is not exist! 目前还是存在这个问题,好像解决不到

2024了&#xff0c;用的华为的老机子 navo3 真机测试&#xff0c;目前还是这个渲染问题&#xff1a;滑动验证页面 MemoryLeakMonitor.jar is not exist! Software rendering doesnt support hardware bitmaps gpu的渲染问题&#xff1a; 这条信息“Software rendering doesnt…