GPU调试

在 Linux 系统中,查询运行在某个特定 GPU 上的进程主要有以下几种方法,最常用的是 NVIDIA 官方提供的工具。

1. 使用 nvidia-smi (最常用)

这是最直接的方法。在终端输入以下命令:

bash 复制代码
nvidia-smi

如何查看:

  1. 在输出的上半部分,你会看到 GPU 的列表(ID 从 0 开始)。
  2. 往下看,找到 "Processes"(进程)表格。
  3. 关键列:
    • GPU UUID / GPU: 标识该进程运行在哪个 GPU 上。
    • PID: 进程 ID。
    • Type: 通常是 C (Compute 计算进程,如 Python/PyTorch) 或 G (Graphics 图形进程)。
    • Process Name: 进程名称。

只显示特定 GPU 的进程:

如果你只想看 GPU 0 上的进程,可以使用:

bash 复制代码
nvidia-smi --query-compute-apps=gpu_uuid,pid,process_name,used_memory --format=csv -i 0

2. 使用 fuser 查询设备文件

GPU 在 Linux 中被视为设备文件。你可以通过查询这些文件的使用者来找到进程。

步骤:

  1. 查看哪些进程占用了 /dev/nvidia* 设备:

    bash 复制代码
    sudo fuser -v /dev/nvidia*
  2. 输出解读:

    • 列表会显示 PID。
    • 通常 /dev/nvidia0 对应 GPU 0,/dev/nvidia1 对应 GPU 1,以此类推。

3. 结合 ps 和 nvidia-smi 进行关联查询

如果你通过 nvidia-smi 看到了 PID,想进一步查看这个 PID 具体是什么任务(例如是哪个 Python 脚本),可以使用 ps 命令。

查询特定 PID 的详细信息:

bash 复制代码
ps -fp <PID>

或者

bash 复制代码
ps aux | grep <PID>

批量查询(高级用法):

你可以编写一行命令,直接列出 GPU 进程及其对应的命令行参数:

bash 复制代码
# 先获取所有 GPU 进程的 PID,然后查询这些 PID 的详细信息
nvidia-smi --query-compute-apps=pid --format=csv,noheader,nounits | xargs -I {} ps -p {} -o pid,ppid,cmd,%mem,%cpu --sort=-%mem

4. 使用 gpustat (第三方工具,更美观)

如果你安装了 gpustat (可以通过 pip install gpustat 安装),它提供了一个更简洁的界面。

安装与使用:

bash 复制代码
pip install gpustat
gpustat -cp

输出特点:

  • -c 参数显示命令名(Command)。
  • -p 参数显示 PID。
  • 它通常能直接显示是哪个 Python 脚本在占用,比原生 nvidia-smi 更直观。
相关推荐
Smoothcloud润云11 小时前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战
服务器·网络·人工智能·安全·gpu算力·gpu
小毕超17 小时前
从推理到训练:Intel Ultra 核显 GPU 加速 YOLO 模型训练
pytorch·yolo·gpu·intel
墨抒颖 msy.plus2 天前
矩阵、注意力与 GPU:拆解 DeepGEMM 与 FlashMLA
人工智能·llm·gpu·源码解析·1024程序员节·deepseek
youshi66683 天前
PID——基本原理
pid
本地化文档3 天前
cutile-rs-book-l10n
rust·gpu·nvidia·cuda·sphinx·crowdin
Eloudy5 天前
IB Specification Vol 1 Chapter 3 体系结构与 rdma-core-2410mlnx54 实现关联分析
网络·gpu·rdma
Eloudy6 天前
全文 - 第03章 - 架构概述 - InfiniBand Specification release 1.4
架构·gpu
Eloudy6 天前
全文 - 第01章 - 简介 - InfiniBand Specification release 1.4
gpu
Eloudy7 天前
关于 doca_gpu_dev_verbs_fence_acquire 的一些分析
gpu
探索云原生7 天前
Ascend vNPU 实战:从原生 Docker 到 Ascend Docker Runtime
linux·ai·云原生·kubernetes·gpu