首页 > 其他分享 >[本科项目实训] NVIDIA-GPU 显存异常与处理

[本科项目实训] NVIDIA-GPU 显存异常与处理

时间:2024-06-23 13:21:55浏览次数:3  
标签:显存 NVIDIA dev 实训 nvidia Usage GPU root

现象描述

在运行程序时,发现torch.cuda.OutOfMemoryError: CUDA out of memory.错误,考虑模型大小远小于所用显卡显存,使用:

$ nvidia-smi
# 或每隔两秒自动刷新
$ watch -n 2 -d nvidia-smi

进行查看,发现显存占用高且GPU利用低,结果如下:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.67                 Driver Version: 550.67         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090        On  |   00000000:12:00.0 Off |                  N/A |
| 38%   28C    P8             20W /  350W |   12120MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+

考虑意外关闭的程序产生内存泄漏,拟打算手动释放显存。

解决方案

使用fuser工具进行进程查询,如果未安装过该指令,使用以下指令进行下载:

# Ubuntu20.04
$ apt-get install psmisc

使用以下指令进行查询:

$ fuser -v /dev/nvidia*
                     USER        PID ACCESS COMMAND
/dev/nvidia5:        root     kernel mount /dev/nvidia5
                     root      47329 F...m pt_main_thread
/dev/nvidiactl:      root     kernel mount /dev/nvidiactl
                     root      47329 F...m pt_main_thread
/dev/nvidia-uvm:     root     kernel mount /dev/nvidia-uvm
                     root      47329 F...m pt_main_thread
/dev/nvidia-uvm-tools:
                     root     kernel mount /dev/nvidia-uvm-tools

使用kill -9 pid杀死对应进程即可:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.67                 Driver Version: 550.67         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090        On  |   00000000:12:00.0 Off |                  N/A |
| 38%   28C    P8             20W /  350W |       1MiB /  24576MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

可使用以下指令直接完成上述操作:

fuser -v /dev/nvidia* |awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sh

参考资料

[1] 解决gpu没有运行进程,但是显存一直占用的方式_此gpu上没有正在运行的程序是什么意思-CSDN博客

[2] 释放异常占用的GPU内存_gpu upload与释放-CSDN博客

标签:显存,NVIDIA,dev,实训,nvidia,Usage,GPU,root
From: https://www.cnblogs.com/yichengliu0219/p/18263033

相关文章

  • [本科项目实训] HuggingFace简介与Git lfs模型下载
    HuggingFace[1]HuggingFace是一个人工智能领域尤其是自然语言处理领域的开源平台,包含数据集、模型、文档、解决方案等内容的分享。由于LLM的参数量较大,往往将参数文件托管到该平台并使用transformers[3]库进行模型调用。模型下载由于项目要求模型本地运行,因而需要下载模......
  • [本科项目实训] Node.js、npm、pnpm配置及GLIBC_2.28缺失解决方案
    问题描述Node.js是一个基于Google的V8引擎的事件驱动I/O服务端JavaScript环境。以下主要解决在Ubuntu环境中的Node配置问题。解决方案使用node-v可以查看当前的node版本,如果未安装node和npm可以尝试以下指令:aptupdateaptupgradeapt-getinstallnodejsapt-get......
  • 创新实训(七)——比赛(Contest)内部逻辑处理
    比赛部分比赛部分包含比赛列表显示、单个比赛内部信息显示、比赛管理、比赛人员以及比赛报名页面这五个代码主要代码文件。此外在内部逻辑处理时还使用了model和lib下的部分配置代码比赛列表比赛列表包含“正在进行或即将到来的比赛”和“已结束的比赛”这两部分具体代码实现......
  • 计算机系统基础实训五—CacheLab实验
    实验目的与要求1、让学生更好地应用程序性能的优化方法;2、让学生更好地理解存储器层次结构在程序运行过程中所起的重要作用;3、让学生更好地理解高速缓存对程序性能的影响;实验原理与内容本实验将帮助您了解缓存对C程序性能的影响。实验由两部分组成。在第一部分中,您将编写......
  • [本科项目实训] 行动模拟实现 与 FastAPI 对应交互-V0
    to2024/06/01行动模拟该项目拟通过大语言模型分析拆解人类描述的任务,自动的调用行动库进行执行并完成内容的汇报。因而需要针对任务对大模型进行微调(比如本项目使用的p-tuningv2),行动模拟即针对微调结果将大模型与行动库进行对接,模拟实际场景下的函数输入输出。第一步,即加......
  • 头歌机器学习实训答案 第1关:集成学习常用算法详解
    任务描述本关任务:学习集成学习的基本概念以及常用算法并编程熟悉sklearn。相关知识为了完成本关任务,你需要掌握:1.个体与集成的概念,2.常用的集成学习算法。个体和集成集成学习(ensemblelearning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-class......
  • 未知进程占用显存排查
    现象nvitop  查看gpu使用情况,会看到‘NoSuchProcess’这样的进程占用了显存;使用ps查不到该命令。  原因大概率是主进程挂了,或者被终止了,但是子进程仍然占用着显存。 解决方法方法1:如果确定进程都是python启动的,执行下面的命令; 如果不是python,但是知道关......
  • Nvidia 超越苹果和微软,成为全球最有价值的公司
    在科技行业,市值是衡量公司成功与否的重要指标。近年来,苹果和微软一直在全球市值排行榜上占据前列。然而,随着人工智能(AI)和图形处理单元(GPU)市场的迅猛发展,Nvidia这家以生产高性能GPU而闻名的公司,成功超越了苹果和微软,成为全球最有价值的公司。这一成就不仅标志着Nvidia的崛起,也......
  • Java计算机毕业设计+Vue实习实训管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会,实习实训已成为高等教育中不可或缺的一部分,对于学生实践能力和职业素养的提升具有重要意义。然而,传统的实习实训管理方式存在着诸多不便,如......
  • mellanox&nvidia ib高速网络优化及常见问题FAQ
    一、Infinibandvs以太网区别Ethernet和InfiniBand是特点鲜明的两种不同的互连技术,各有所长,都有自己的适用场景。Ethernet主要是为了实现万物互联。Infiniband主要表现在带宽、时延、网络可靠性、和组网方式上。在高性能计算场景中,数据传输很容易成为瓶颈,为了解决高带宽、低......