Pytorch 如何查看、释放已关闭程序占用的GPU资源

看代码吧~

import torch
print(torch.cuda.current_device())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name())
print(torch.cuda.is_available())

打开terminal输入nvidia-smi可以看到当前各个显卡及用户使用状况,如下图所示,使用kill -9 pid(需替换成具体的编号)即可杀掉占用资源的程序,杀完后结果如下图所示,可以发现再也没有对应自己的程序了!

补充一下师弟帮忙的记录截图,方便以后查询使用:

补充:如何处理Pytorch使用GPU后仍有GPU资源未释放的情况

使用PyTorch设置多线程(threads)进行数据读取(DataLoader),其实是假的多线程,他是开了N个子进程(PID都连着)进行模拟多线程工作,所以你的程序跑完或者中途kill掉主进程的话,子进程的GPU显存并不会被释放,需要手动一个一个kill才行

具体方法描述如下:

1.先关闭ssh(或者shell)窗口,退出重新登录

2.查看运行在gpu上的所有程序:

fuser -v /dev/nvidia*

3.kill掉所有(连号的)僵尸进程

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Pytorch 高效使用GPU的操作

    前言 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的形式,无须写成循环运算.然而,在单核CPU上执行时,矩阵运算会被展开成循环的形式,本质上还是串行执行.GPU(Graphic Process Units,图形处理器)的众核体系结构包含几千个流处理器,可将矩阵运算并行化执行,大幅缩短计算时间.随着NVIDIA.AMD等公司不断推进其GPU的大规模并行架构,面向通用计算的GPU已成为加速可并

  • 解决pytorch GPU 计算过程中出现内存耗尽的问题

    Pytorch GPU运算过程中会出现:"cuda runtime error(2): out of memory"这样的错误.通常,这种错误是由于在循环中使用全局变量当做累加器,且累加梯度信息的缘故,用官方的说法就是:"accumulate history across your training loop".在默认情况下,开启梯度计算的Tensor变量是会在GPU保持他的历史数据的,所以在编程或者调试过程中应该尽力避免在循环中累加梯度信息. 下面举个栗子: 上代

  • Pytorch释放显存占用方式

    如果在python内调用pytorch有可能显存和GPU占用不会被自动释放,此时需要加入如下代码 torch.cuda.empty_cache() 我们来看一下官方文档的说明 Releases all unoccupied cached memory currently held by the caching allocator so that those can be used in other GPU application and visible in nvidia-smi. Note e

  • pytorch程序异常后删除占用的显存操作

    1-删除模型变量 del model_define 2-清空CUDA cache torch.cuda.empty_cache() 3-步骤2(异步)需要一定时间,设置时延 time.sleep(5) 完整代码如下: del styler torch.cuda.empty_cache() time.sleep(5) 以上这篇pytorch程序异常后删除占用的显存操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Pytorch 如何查看、释放已关闭程序占用的GPU资源

    看代码吧~ import torch print(torch.cuda.current_device()) print(torch.cuda.device_count()) print(torch.cuda.get_device_name()) print(torch.cuda.is_available()) 打开terminal输入nvidia-smi可以看到当前各个显卡及用户使用状况,如下图所示,使用kill -9 pid(需替换成具体的编号)即可杀掉占用资源的程序,杀完后结果如下图所示,可

  • Android开发获取系统中已安装程序信息的方法

    本文实例讲述了Android开发获取系统中已安装程序信息的方法.分享给大家供大家参考,具体如下: public class AppInfoParser { private static String tag = "AppInfoParser"; public static List<AppInfo> getAppInfos(Context context){ //首先获取到包的管理者 PackageManager packageManager = context.getPa

  • C语言中system()执行cmd命令打开关闭程序的方法

    函数原型: int system(char *command); 使用该函数需要添加<stdlib.h>头文件 1.打开程序 系统自带程序可直接使用start命令 system("start iexplore.exe"); //启动ie 非系统自带程序需要加入路径 system("start D:\Tencent\WeChat\WeChat.exe"); //启动改路径下的客户端 注意如果路径中有空格,需要对整个路径添加双引号 2.关闭程序 system

  • 运行tensorflow python程序,限制对GPU和CPU的占用操作

    一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用.并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度. 使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K40). 1.如果是只需要用某一块或某几块GPU,可以在运行程序时,利用如下命令运行:CUDA_VI

  • LINUX中如何查看某个端口是否被占用的方法

    之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1: 图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了. 2.netstat -nultp(此处不用加端口号)

  • linux下使用 du查看某个文件或目录占用磁盘空间的大小方法

    du -ah --max-depth=1 这个是我想要的结果 a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory arguments)

  • 查看iOS已上架App的Crash信息定位、应对处理方式的实例

    完整的App都是经过很多轮测试才能正式上架的,但是没有任何一个开发人员可以保证一定会不出现任何问题.如果已上架App出现奔溃(Crash)情况,对于开发人员来说如何查看Crash信息定位及对应的处理方式尤为重要.以下就是查看Crash信息定位的步骤和处理方式. Crash的来源:分布情况(自发现或者用户发现) 1. 通过对应的苹果开发者账号进入iTunes connect,进入App分析,查看对应的App信息,如:App购买量,使用次数,展示次数等. 2. 进入后找到App奔溃的信息,在这里可以

  • 在pytorch中查看可训练参数的例子

    pytorch中我们有时候可能需要设定某些变量是参与训练的,这时候就需要查看哪些是可训练参数,以确定这些设置是成功的. pytorch中model.parameters()函数定义如下: def parameters(self): r"""Returns an iterator over module parameters. This is typically passed to an optimizer. Yields: Parameter: module paramete

  • 解决python web项目意外关闭,但占用端口的问题

    问题描述 因为项目强制关闭,但是服务还在运行,导致重新运行项目时候 提示地址已经使用(端口被占用) /usr/bin/python3.5 python-login-demo/index.py http://0.0.0.0:8080/ Traceback (most recent call last): File "/var/www/git/mine/python-login-demo/index.py", line 64, in <module> application.r

  • pytorch 实现查看网络中的参数

    可以通过model.state_dict()或者model.named_parameters()函数查看现在的全部可训练参数(包括通过继承得到的父类中的参数) 可示例代码如下: params = list(model.named_parameters()) (name, param) = params[28] print(name) print(param.grad) print('-------------------------------------------------') (name

随机推荐