CUDA out of memory & 查看进程

Linux 使用技巧阶段性总结

(For more information, please go to Alan D. Chen , upgrading~~)


Anaconda与conda区别
conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。

conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身

Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。

两份重要的课程,一定要仔细看哟~。

Typora入门:全网最全教程

NVIDIA-SMI系列命令总结

下面的常用命令是较为常用的语句。

在Linux系统中查考GPU 的使用情况可以使用:

Linux查看Nvidia显卡信息及使用情况,查看GPU 的使用情况:

  • nvidia-smi;(显示所有GPU的当前信息状态
  • watch -n 1 nvidia-smi实时查看GPU

20180821161158905

  • 显示的表格中:

    Fan: 风扇转速(0%--100%),N/A表示没有风扇

    Temp: GPU温度(GPU温度过高会导致GPU频率下降)

    Perf: 性能状态,从P0(最大性能)到P12(最小性能)

    Pwr: GPU功耗

    Persistence-M: 持续模式的状态(持续模式耗能大,但在新的GPU应用启动时花费时间更少)

    Bus-Id: GPU总线,domain🚌device.function

    Disp.A: Display Active,表示GPU的显示是否初始化

    Memory-Usage:显存使用率

    Volatile GPU-Util:GPU使用率

    ECC: 是否开启错误检查和纠正技术,0/DISABLED, 1/ENABLED

    Compute M.: 计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED


    附加选项:

    nvidia-smi –i xxx

    指定某个GPU

    nvidia-smi –l xxx

    动态刷新信息(默认5s刷新一次),按Ctrl+C停止,可指定刷新频率,以秒为单位

    nvidia-smi –f xxx

    将查询的信息输出到具体的文件中,不在终端显示

  • nvidia-smi -q

    查询所有GPU的当前详细信息

    20180821161259956

  • 附加选项:

    nvidia-smi –q –u

    显示单元而不是GPU的属性

    nvidia-smi –q –i xxx

    指定具体的GPU或unit信息

    nvidia-smi –q –f xxx

    将查询的信息输出到具体的文件中,不在终端显示

    nvidia-smi –q –x

    将查询的信息以xml的形式输出

    nvidia-smi -q –d xxx

    指定显示GPU卡某些信息,xxx参数可以为MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER,CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT,ACCOUNTING

    nvidia-smi –q –l xxx

    动态刷新信息,按Ctrl+C停止,可指定刷新频率,以秒为单位


    在Linux服务器上将常会遇到

    CUDA out of memory
    

    在机器学习领域,通常认为是batch size 设置过大所致,但是这里还有另外的情况。

    在开启tmux的情况下,使用命令行启动深度学习程序,这个过程是不能够通过“ctrl + c”来强行停止的,但是可以通过tmux 进行python + 命令,这个时候可以通过

    watch -n 1 nvidia-smi
    
    1.查看GPU的占用情况,同时查看一下进程使用
    top
    

    top命令:可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。输入top后可以看到如下的界面,实时显示进程情况。

    20180822133603685

2.杀死进程

​ 我们可以通过 进程的名字和进程的ID(PID)来结束进程。

​ 结束命令:

​ kill:通过进程ID来结束进程

​ killall:通过进程名字结束进程

这样可以杀死进程,解放memory。

posted @ 2020-11-06 18:02  AlanChens  阅读(2116)  评论(0编辑  收藏  举报