当前位置:首页 > Linux > 正文

Linux快速关闭GPU计算进程

要停止Linux中的GPU运算,先使用 nvidia-smi命令查找占用GPU的进程ID(PID),然后使用 kill -9 PID命令强制终止该进程即可释放GPU资源。

在Linux系统中停止GPU运算通常涉及终止正在使用GPU资源的进程,以下为详细的操作指南,涵盖多种场景与方法,确保操作安全有效:


确认GPU使用状态

在停止GPU运算前,需先定位占用GPU的进程:

  1. NVIDIA显卡
    运行 nvidia-smi 查看进程列表:

    nvidia-smi --query-compute-apps=pid,process_name,gpu_uuid --format=csv

    输出示例:

    Linux快速关闭GPU计算进程  第1张

    pid, process_name, gpu_uuid
    1234, python, GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  2. AMD显卡
    安装 rocm-smi 后执行:

    rocm-smi --showpid
  3. 通用检测工具

    • gpustat(需安装:pip install gpustat):
      gpustat -cp
    • htop(按 F2 > 添加 GPU% 列):
      sudo apt install htop && htop

终止GPU进程的核心方法

方法1:通过PID结束进程

  1. 获取进程PID(如 1234)后,发送终止信号:
    kill -9 1234  # 强制终止

    或优雅停止:

    kill -15 1234  # 请求进程自行退出

方法2:批量结束所有GPU进程

  • NVIDIA显卡专用命令
    结束所有使用GPU的进程(谨慎使用!):

     sudo nvidia-smi --gpu-reset -i 0  # 重置GPU(仅限紧急情况)
  • 通用终止脚本
    创建脚本 kill_gpu_procs.sh

    #!/bin/bash
    for pid in $(nvidia-smi --query-compute-apps=pid --format=csv,noheader | uniq);
    do
      kill -9 $pid
    done

    运行:

    chmod +x kill_gpu_procs.sh && sudo ./kill_gpu_procs.sh

方法3:使用系统工具

  • pkill 按进程名终止
    例如停止所有Python任务:

    pkill -f "python.*gpu"
  • htop 交互式终止

    1. 运行 htop
    2. F4 搜索 gpu
    3. 选中进程后按 F9 > SIGKILL

高级管理场景

停止Docker容器中的GPU运算

  • 查找容器ID:
    docker stats --no-stream | grep gpu
  • 停止容器:
    docker stop 容器ID

禁用GPU驱动(彻底停止所有运算)

  • 卸载NVIDIA内核模块:
    sudo rmmod nvidia_drm nvidia_uvm nvidia_modeset nvidia
  • 临时禁用GPU(重启后恢复):
    sudo bash -c "echo 0 > /sys/bus/pci/devices/0000:01:00.0/enable"  # 替换为GPU PCI地址

注意事项

  1. 权限要求
    • kill/nvidia-smisudo 权限。
    • 避免误杀系统关键进程(如显示管理器)。
  2. 数据安全
    • 强制终止可能导致数据丢失,优先尝试 kill -15
  3. 多用户环境
    • 使用 who 确认进程所有者,避免影响他人任务。
  4. 持久生效
    • 若需永久禁用GPU,需在BIOS或内核参数中设置(如 nouveau.modeset=0)。

验证GPU是否停止

  1. 再次运行监控命令:
    nvidia-smi  # 应显示"No running processes found"
    watch -n 1 gpustat  # 动态观察GPU利用率降至0%
  2. 检查温度变化(确认负载解除):
    nvidia-smi -q -d temperature

引用说明

  • NVIDIA官方文档:nvidia-smi指南
  • Linux内核手册:信号处理机制
  • ROCm工具文档:rocm-smi使用
    操作涉及系统底层权限,建议提前备份数据并遵循生产环境规范。
0