news 2026/2/10 13:56:19

GPEN如何监控GPU利用率?nvidia-smi使用技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPEN如何监控GPU利用率?nvidia-smi使用技巧

GPEN如何监控GPU利用率?nvidia-smi使用技巧

本镜像基于GPEN人像修复增强模型构建,预装了完整的深度学习开发环境,集成了推理及评估所需的所有依赖,开箱即用。

1. 镜像环境说明

组件版本
核心框架PyTorch 2.5.0
CUDA 版本12.4
Python 版本3.11
推理代码位置/root/GPEN

主要依赖库:

  • facexlib: 用于人脸检测与对齐
  • basicsr: 基础超分框架支持
  • opencv-python,numpy<2.0,datasets==2.21.0,pyarrow==12.0.1
  • sortedcontainers,addict,yapf

2. 快速上手

2.1 激活环境

conda activate torch25

2.2 模型推理 (Inference)

进入代码目录并使用预置脚本进行推理测试:

cd /root/GPEN

使用下面命令进行推理测试,可以通过命令行参数灵活指定输入图片。

# 场景 1:运行默认测试图 # 输出将保存为: output_Solvay_conference_1927.png python inference_gpen.py # 场景 2:修复自定义图片 # 输出将保存为: output_my_photo.jpg python inference_gpen.py --input ./my_photo.jpg # 场景 3:直接指定输出文件名 # 输出将保存为: custom_name.png python inference_gpen.py -i test.jpg -o custom_name.png

推理结果将自动保存在项目根目录下,测试结果如下:


3. 已包含权重文件

为保证开箱即用及离线推理能力,镜像内已预下载以下模型权重(如果没有运行推理脚本会自动下载):

  • ModelScope 缓存路径~/.cache/modelscope/hub/iic/cv_gpen_image-portrait-enhancement
  • 包含内容:完整的预训练生成器、人脸检测器及对齐模型。

4. GPU资源监控:nvidia-smi 使用详解

GPEN作为基于生成对抗网络的高分辨率人像增强模型,在推理和训练过程中对GPU资源有较高需求。为了确保系统稳定运行并优化性能表现,掌握nvidia-smi工具的使用至关重要。

4.1 nvidia-smi 简介

nvidia-smi(NVIDIA System Management Interface)是NVIDIA官方提供的系统管理接口工具,可用于实时查看GPU状态、监控资源使用情况、设置功耗策略等。它是深度学习开发者日常调试和性能分析的核心工具之一。

执行以下命令即可查看当前GPU的基本信息:

nvidia-smi

输出示例:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.129.03 Driver Version: 535.129.03 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. | |===============================+======================+======================| | 0 Tesla V100-SXM2-32GB Off | 00000000:00:1B.0 Off | 0 | | N/A 45C P0 35W / 300W | 8124MiB / 32768MiB | 78% Default | +-------------------------------+----------------------+----------------------+

关键字段解释:

  • Temp: GPU 温度(正常范围通常为 30–85°C)
  • Memory-Usage: 显存占用情况(如 8124MiB / 32768MiB)
  • GPU-Util: GPU 利用率(表示核心计算单元活跃程度)
  • Pwr:Usage/Cap: 功耗使用与上限
  • Compute M.: 计算模式(Default 表示可同时运行多个任务)

提示:GPEN 推理阶段以显存带宽和卷积计算为主,通常表现为中高 GPU 利用率(60%-90%),若长期低于30%,可能意味着存在数据加载瓶颈或批处理过小。

4.2 实时动态监控技巧

持续刷新监控(每秒一次)
nvidia-smi -l 1

该命令每秒刷新一次GPU状态,适合观察推理过程中的资源波动。

监控特定指标(简洁输出)

如果你只关心利用率和显存,可以使用查询命令提取关键信息:

nvidia-smi --query-gpu=timestamp,name,temperature.gpu,utilization.gpu,utilization.memory,memory.used,memory.total --format=csv

输出示例:

timestamp, name, temperature.gpu, utilization.gpu [%], utilization.memory [%], memory.used [MiB], memory.total [MiB] 2025/04/05 10:23:45, Tesla V100-SXM2-32GB, 45, 78, 82, 8124, 32768

此格式便于记录日志或导入Excel进行可视化分析。

指定GPU设备监控

多卡环境下,可通过-i参数指定某块GPU:

nvidia-smi -i 0 --query-gpu=utilization.gpu,memory.used --format=csv

适用于分布式训练或多任务调度场景。

4.3 高级用法与实用技巧

设置自动采样并保存日志

将GPU使用情况持续记录到文件中,便于后续分析:

nvidia-smi -l 2 --query-gpu=timestamp,utilization.gpu,memory.used --format=csv >> gpu_usage.log &

该命令每2秒采样一次,并追加写入gpu_usage.log文件,后台运行不影响当前操作。

查看进程占用情况

当显存异常占用时,可查看具体是哪个进程导致:

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

输出示例:

pid, process_name, used_memory [MiB] 12345, python, 8124

结合kill -9 <PID>可手动释放无响应进程。

限制GPU功耗(节能模式)

在非高性能需求场景下,可通过降低功耗限制来减少发热和能耗:

nvidia-smi -pl 200 # 将GPU 0 的最大功耗设为200W

恢复默认:

nvidia-smi -rg

注意:部分云平台实例不支持修改功耗策略。


5. GPEN推理性能优化建议

结合nvidia-smi监控数据,以下是针对GPEN模型的实际优化建议:

5.1 显存优化

GPEN支持多种分辨率输入(如512×512、1024×1024)。随着分辨率提升,显存消耗呈平方级增长。

分辨率显存占用(估算)
512×512~4 GB
1024×1024~12 GB
2048×2048>24 GB(需多卡或梯度检查点)

建议

  • 使用nvidia-smi观察实际显存峰值,避免OOM错误。
  • 对超高分辨率图像,考虑分块处理(tiling)策略。

5.2 批量推理调优

虽然GPEN主要用于单张人像增强,但在批量处理场景下可通过调整batch_size提升吞吐效率。

监控GPU-Util指标:

  • 若利用率长期低于50%,尝试增加batch_size
  • 若显存不足,则启用--fp16半精度推理(如支持)

示例修改推理脚本支持批量输入:

# 修改 inference_gpen.py 中的数据加载逻辑 dataloader = DataLoader(dataset, batch_size=4, shuffle=False)

再配合nvidia-smi -l 1观察整体利用率变化。

5.3 性能瓶颈诊断流程

当你发现推理速度慢或GPU利用率偏低时,推荐按以下流程排查:

  1. 运行nvidia-smi查看 GPU-Util 和 Memory-Usage
    • 若 GPU-Util < 30%,说明计算未饱和
  2. 检查CPU和磁盘I/O
    • 使用htopiotop查看是否因图像解码或预处理阻塞
  3. 启用异步数据加载
    • 在PyTorch中设置DataLoader(num_workers>0, pin_memory=True)
  4. 启用TensorRT或ONNX加速(进阶)
    • 将GPEN模型导出为ONNX格式,结合TensorRT实现低延迟推理

6. 常见问题

  • 数据集准备:官网训练数据为 FFHQ 公开数据集。本算法采用监督式的训练,因此需要事先准备好高质-低质的数据对,推荐使用RealESRGAN、BSRGAN等降质方式进行低质数据生成。
  • 训练:提供训练数据对的读取地址,设置好需要的分辨率版本(推荐512x512),调整生成器和判别器的学习率以及总epoch数,即可开始训练。

7. 参考资料

  • 官方仓库:yangxy/GPEN
  • 魔搭社区地址:iic/cv_gpen_image-portrait-enhancement

8. 引用 (Citation)

@inproceedings{yang2021gpen, title={GAN-Prior Based Null-Space Learning for Consistent Super-Resolution}, author={Yang, Tao and Ren, Peiran and Xie, Xuansong and Zhang, Lei}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, year={2021} }

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 6:09:16

VibeVoice-TTS实时合成教程:云端低延迟方案

VibeVoice-TTS实时合成教程&#xff1a;云端低延迟方案 你是不是也遇到过这种情况&#xff1f;作为直播主&#xff0c;想在直播间玩点新花样&#xff0c;比如变声成萝莉、御姐、机器人&#xff0c;甚至模仿某个角色的声音&#xff0c;增加互动趣味。但一试才发现&#xff0c;本…

作者头像 李华
网站建设 2026/2/7 3:26:18

5分钟学会使用Untrunc:轻松修复损坏视频文件的终极解决方案

5分钟学会使用Untrunc&#xff1a;轻松修复损坏视频文件的终极解决方案 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 当你精心拍摄的旅行视频、家庭聚会记录突然无…

作者头像 李华
网站建设 2026/2/7 12:52:05

Blender插件管理器:如何轻松管理2000+扩展工具

Blender插件管理器&#xff1a;如何轻松管理2000扩展工具 【免费下载链接】Blender-Add-on-Manager Blender Add-on Manager to install/uninstall/update from GitHub 项目地址: https://gitcode.com/gh_mirrors/bl/Blender-Add-on-Manager 对于Blender用户来说&#x…

作者头像 李华
网站建设 2026/2/5 0:30:24

Marlin固件增量升级实战:从90分钟到5分钟的极致优化

Marlin固件增量升级实战&#xff1a;从90分钟到5分钟的极致优化 【免费下载链接】Marlin Marlin 是一款针对 RepRap 3D 打印机的优化固件&#xff0c;基于 Arduino 平台。 项目地址: https://gitcode.com/GitHub_Trending/ma/Marlin 还在为3D打印机固件升级耗费数小时而…

作者头像 李华
网站建设 2026/2/8 11:05:23

解密原神数据查询:3分钟掌握账号全貌的神器

解密原神数据查询&#xff1a;3分钟掌握账号全貌的神器 【免费下载链接】GenshinPlayerQuery 根据原神uid查询玩家信息(基础数据、角色&装备、深境螺旋战绩等) 项目地址: https://gitcode.com/gh_mirrors/ge/GenshinPlayerQuery 你是否曾在原神游戏中遇到这样的困扰…

作者头像 李华
网站建设 2026/2/7 12:27:42

UNet医学图像分割懒人包:预配置环境,10分钟出结果

UNet医学图像分割懒人包&#xff1a;预配置环境&#xff0c;10分钟出结果 你是不是也遇到过这样的情况&#xff1f;导师给了一个看起来很专业的MRI图像分割代码&#xff0c;说“这个模型效果不错&#xff0c;你拿去跑一下数据”。结果你一上手就发现&#xff1a;依赖装不上、库…

作者头像 李华