Nsight Systems是具有跟踪功能的统计抽样探查器。本次安装基于Ubuntu20.04系统,内核版本为Linux 5.4.0-58-generic,显卡为Nvidia RTX3080 10G,Nsight Systems版本2020.5.1.83、CUDA版本11.2。其他系统内核版本须为:适用于CentOS和RedHat Enterprise Linux 7.4+的3.10.0-693或更高版本,所有其他发行版(包括Ubuntu)为4.3或更高版本。Nsight Systems仅支持纯64位环境。换句话说,不支持在64位环境中运行的32位系统或32位进程。
官方文档:
https://docs.nvidia.com/nsight-systems/InstallationGuide/index.html#system-requirements
官方对Nsight的支持文档中,只提到11.1,对于11.2版本的CUDA的支持不知道,执行deviceQuery命令确定系统上的CUDA驱动程序和运行时版本,我的系统deviceQuery在:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
先不管,下一步。
Linux上对x86_64目标的要求,从主机上的GUI连接到基于x86_64的Linux的目标时,通过SSH建立连接。
使用Linux Perf:要收集线程调度数据和IP(指令指针)样本,目标系统上的Perf偏执级别必须为2或更小。使用以下命令进行检查:
cat /proc/sys/kernel/perf_event_paranoid
如果输出结果数值> 2,请执行以下操作以临时调整偏执级别(请注意,此操作是临时调整,系统每次重新启动后都需要执行):
sudo sh -c 'echo 2 > /proc/sys/kernel/perf_event_paranoid'
要使更改永久生效,请使用以下命令:
sudo sh -c 'echo kernel.perf_event_paranoid=2 > /etc/sysctl.d/local.conf'
如需移除请编辑/etc/sysctl.d/local.conf删除echo kernel.perf_event_paranoid=2 行,保存重启生效
Nsight Systems需要glibc 2.14或更高版本。要检查目标设备上的glibc版本,请运行以下命令:
ldd --version
Nsight Systems需要目标系统上/var/lock目录的写权限,通过ls -l /var/lock 命令可以检查
test@test:~$ ll /var/lock
lrwxrwxrwx 1 root root 9 Jul 31 16:28 /var/lock -> /run/lock/
Nsight Systems下载(需要注册为开发者):
https://developer.download.nvidia.cn/assets/tools/secure/nsight-systems/2020_5/NsightSystems-linux-public-2020.5.1.85-5ee086b.run
安装Nsight Systems
sudo sh NsightSystems-linux-public-2020.5.1.85-5ee086b.run --accept --quiet
默认安装路径/opt/nvidia/nsight-systems/2020.5.1
如需卸载直接rm -rf /opt/nvidia/nsight-systems/2020.5.1
如果您希望在没有root用户的情况下运行CLI(推荐模式),则需要安装在具有完全访问权限的目录中。设置了CLI,可以使用 nsys status -e 命令检查您的环境。
test@test:~$ nsys status -e
Sampling Environment Check
Linux Kernel Paranoid Level = 2: OK
Linux Distribution = Ubuntu
Linux Kernel Version = 5.4.0-54-generic: OK
Linux perf_event_open syscall available: OK
Sampling trigger event available: OK
Intel(c) Last Branch Record support: Not Available
Sampling Environment: OK
通过此状态检查,可以确保在本地环境中满足使用Nsight Systems进行CPU采样的系统要求。如果采样环境不正常,您仍然可以运行各种跟踪操作。
Intel© Last Branch Record support
英特尔(c)上一个分支记录允许包括Nsight Systems在内的工具 使用硬件来快速获取有限的堆栈信息。 如果有的话,默认情况下,Nsight Systems将使用此方法进行堆栈解析。英特尔(c)最后分支记录是指寄存器对(MSR)的集合,这些寄存器对(MSR)存储与最近执行的分支有关的源地址和目标地址。它们在Intel Core 2,Intel Xeon和Intel Atom处理器家族中均受支持。但作者采用的是AMD处理器,所以不受支持。
查看Nsight Systems版本
nsys --version
使用CLI,运行 nsys --help [选项] 可以获取有关选项用法(如nsys --help status),请参阅《用户指南》中的“从CLI对应用程序进行性能分析”以获取完整文档。