3、Nsight Systems安装与配置:Linux/Windows平台安装,环境变量设置(NSYS_*),权限配置与性能计数器解锁,常见安装问题排查
好,咱们进入实战环节的第一个硬骨头——Nsight Systems的安装与配置。
说实话,我见过太多人在这一步卡住。工具装好了,但跑起来啥数据都抓不到,或者报一堆莫名其妙的错误。其实说白了,安装本身不难,难的是把环境调对、权限打通。
这一节,我带你从头捋一遍。Linux和Windows我都会讲,重点放在Linux上——毕竟咱们搞HPC/AI的,主力环境还是Linux。
3.1 平台安装:Linux篇
Nsight Systems的安装包可以从NVIDIA官网下载。我个人习惯用.run文件,因为它不依赖包管理器,干净利落。
# 下载安装包(以2024.3版本为例)
wget https://developer.download.nvidia.com/.../NsightSystems-linux-2024.3.run
# 赋予执行权限
chmod +x NsightSystems-linux-2024.3.run
# 执行安装(建议用sudo,因为后面要写系统级配置)
sudo ./NsightSystems-linux-2024.3.run
安装过程中,它会问你要不要创建符号链接、要不要添加环境变量。我建议全选「是」。省得后面手动配。
/opt/nvidia/nsight-systems/ 下。这样多版本共存时好管理。你可以在安装时用 --prefix 指定路径。
安装完成后,验证一下:
nsys --version
如果能正常输出版本号,说明安装成功了。
3.2 平台安装:Windows篇
Windows下就简单多了。下载.exe安装包,双击一路Next就行。
不过有一点要注意:Windows版的Nsight Systems依赖Visual C++ Redistributable。如果你机器上没有,安装程序会提示你下载。嗯,别跳过这一步。
安装完成后,你可以在开始菜单里找到「Nsight Systems」的快捷方式。命令行工具nsys.exe会自动加到PATH里。
nsys命令找不到,八成是PATH没刷新。重启终端或者手动加一下环境变量就好。
3.3 环境变量设置:NSYS_* 系列
Nsight Systems有一整套环境变量,以NSYS_开头。这些变量控制着工具的行为。我挑几个最常用的讲。
| 环境变量 | 作用 | 我的推荐值 |
|---|---|---|
NSYS_MPI |
指定MPI启动器路径 | /usr/bin/mpirun |
NSYS_CUDA_HOME |
指定CUDA Toolkit路径 | /usr/local/cuda |
NSYS_NODE_COUNT |
多节点压测时指定节点数 | 根据集群实际配置 |
NSYS_GPU_COUNT |
每节点GPU数量 | 8(DGX标准配置) |
NSYS_OUTPUT |
输出文件路径 | ./nsys_reports |
设置方法很简单,加到~/.bashrc或~/.zshrc里:
export NSYS_CUDA_HOME=/usr/local/cuda
export NSYS_OUTPUT=./nsys_reports
export NSYS_MPI=/usr/bin/mpirun
然后source ~/.bashrc让它生效。
3.4 权限配置与性能计数器解锁
这是最容易出问题的地方。Nsight Systems要读取GPU的性能计数器,比如SM利用率、内存带宽、PCIe流量等。但这些计数器默认是锁住的——出于安全考虑。
解锁方法有两种:
- 临时解锁(推荐调试用):运行
sudo nsys,或者用sudo启动你的应用。 - 永久解锁(推荐生产环境):配置内核参数
kernel.perf_event_paranoid。
永久解锁的命令:
# 查看当前值
cat /proc/sys/kernel/perf_event_paranoid
# 设为1(允许非特权用户访问性能计数器)
sudo sysctl -w kernel.perf_event_paranoid=1
# 写入sysctl.conf使其持久化
echo "kernel.perf_event_paranoid=1" | sudo tee -a /etc/sysctl.conf
另外,如果你要用nvidia-smi的持久化模式,记得先打开:
sudo nvidia-smi -pm 1
nvidia-persistenced服务没启动。嗯,这个服务负责维持GPU状态,Nsight Systems依赖它。记得检查一下:systemctl status nvidia-persistenced。
3.5 常见安装问题排查
我把这些年遇到的高频问题整理了一下。你遇到了可以直接对照着查。
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
nsys: command not found |
PATH没包含安装目录 | 手动添加export PATH=/opt/nvidia/nsight-systems/bin:$PATH |
Error: CUDA driver is not installed |
CUDA驱动版本不匹配 | 检查nvidia-smi输出,确保驱动版本≥Nsight Systems要求的最低版本 |
Permission denied: /dev/nvidia* |
用户不在video或render组 |
sudo usermod -aG video $USER,然后重新登录 |
No GPU metrics collected |
性能计数器未解锁 | 按3.4节配置perf_event_paranoid |
Segmentation fault on startup |
库文件冲突(常见于Anaconda环境) | 用ldd $(which nsys)检查依赖,必要时用conda deactivate退出虚拟环境 |
--privileged或者挂载/dev和/sys。否则性能计数器读不到。我一般这么启动容器:docker run --gpus all --privileged -v /dev:/dev -v /sys:/sys ...
3.6 知识体系总览
下面这张图,我把整个安装配置的流程串起来了。你跟着走一遍,基本不会出大问题。
这张图把整个流程分成了6步。从安装开始,到环境变量、权限配置、计数器解锁,最后验证和排查。你按这个顺序走,基本不会漏掉什么。
好了,安装配置这块就讲到这里。记住一句话:环境配好了,后面压测才能跑得顺。别嫌这一步麻烦,磨刀不误砍柴工。