GPU基本常识一

GPU: Graphic Processing Unit 图形处理器

Shader: GPU执行的,针对3D对象进行操作的程序.

以VIP7000为例:

Shader: 1个shader是128位的处理单元. VIP7000的gpu有2个shader, 所以有2个core, 所以一个周期可以处理2条指令.

VIP上有2套指令集,shader指令集和针对vision的指令集.



program cache: 外面的程序加载到VIP7000的program cache里面,然后去执行.

                          存放的是openvx的指令

shader core:  VIP7000有2个shader core, 所以一个周期可以执行2条指令.                     

                      每个shader core里面有4个寄存器文件,每个寄存器文件有128个寄存器,每个寄存器是128bit.

       

<think>好的,用户想知道在Linux系统中如何监控GPU使用情况。我需要根据提供的引用资料来整理答案。首先,引用[1]提到了nvitop这个工具,类似top命令,实时显示GPU信息。引用[2]和[3]也讨论了其他工具,但可能安装需要权限。引用[4]提到了用Python脚本监控的方法。 用户需要工具和方法,所以应该分点说明。首先nvidia-smi是基础工具,然后介绍nvitop,再提到其他方法如gpustat。需要确保每个步骤都正确,比如安装命令是否正确,是否需要root权限。注意引用中的信息,比如nvitop是否需要root,但引用[1]提到安装是通过pip,可能用户权限即可。引用[3]提到另个工具需要root,但用户可能没有,所以可以建议替代方案。 然后,用户可能想知道实时监控或周期性查看,所以可以包括watch命令结合nvidia-smi。另外,Python脚本的方法适合自动化任务,如引用[4]中的监控训练任务。需要确保回答结构清晰,分点列出不同的工具和方法,并附上示例代码或命令。同时,根据引用资料正确标注参考文献,比如nvitop来自引用[1],gpustat可能来自其他引用,但如果没有明确提到,可能需要调整。 还要检查是否有其他工具或方法在引用中被提到,比如gpustat可能在引用中没有,但根据常识补充,或者是否在引用[3]中提到。如果引用中没有,可能需要避免添加,但用户问题可能允许般性回答。根据引用资料,主要推荐nvitop和nvidia-smi,以及可能的脚本方法。 最后,生成相关问题,参考用户提供的示例,问题应围绕工具比较、安装问题、自动化监控等。确保回答符合格式要求,使用正确的中文,数学公式用$...$,独立公式用$$...$$,但这里可能不需要数学公式。代码块用正确格式,比如bash或python。</think>### 如何在 Linux 系统中监控 GPU 使用率 在 Linux 系统中监控 GPU 使用率可通过多种工具实现,以下是常用方法及详细说明: --- #### 1. **使用 `nvidia-smi` 命令** NVIDIA 官方提供的命令行工具,可查看 GPU 的基本状态(利用率、显存占用、温度等)。 ```bash nvidia-smi ``` 执行后会输出实时信息,包括: - **GPU 利用率**(`GPU-Util`) - **显存使用情况**(`Memory-Usage`) - **当前运行的进程**(`Processes`) 若需周期性刷新(例如每 2 秒),可结合 `watch` 命令: ```bash watch -n 2 nvidia-smi ``` --- #### 2. **使用 `nvitop` 工具** `nvitop` 是个类似 `top` 的交互式监控工具,提供更直观的实时视图[^1]。 - **安装**: ```bash pip install nvitop ``` - **使用**: ```bash nvitop # 默认模式(完整视图) nvitop -m full # 显示详细进程信息 ``` 支持按 GPU 或进程排序,并高亮关键指标(如高负载进程)。 --- #### 3. **使用 `gpustat` 工具** 轻量级工具,以简洁格式显示 GPU 状态。 - **安装**: ```bash pip install gpustat ``` - **使用**: ```bash gpustat -i 2 # 每 2 秒刷新次 ``` 输出包含 GPU 型号、显存占用、温度和进程列表。 --- #### 4. **自定义 Python 脚本监控** 通过调用 `pynvml` 库实现自动化监控[^4]。示例代码: ```python from pynvml import * import time nvmlInit() device_count = nvmlDeviceGetCount() while True: for i in range(device_count): handle = nvmlDeviceGetHandleByIndex(i) util = nvmlDeviceGetUtilizationRates(handle) mem_info = nvmlDeviceGetMemoryInfo(handle) print(f"GPU {i}: 使用率 {util.gpu}%, 显存占用 {mem_info.used//1024**2} MB") time.sleep(2) ``` 此脚本可扩展为触发告警或自动关机逻辑。 --- #### 工具对比 | 工具 | 交互性 | 安装复杂度 | 功能丰富度 | |--------------|--------|------------|------------------| | `nvidia-smi` | 无 | 无需安装 | 基础指标 | | `nvitop` | 高 | 需 pip | 进程管理、实时视图 | | `gpustat` | 中 | 需 pip | 轻量级周期性监控 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值