前言
在之前的博客《NVIDIA nvprof / nvvp工具安装和使用介绍》中有提到NVIDIA GPU编程的性能分析工具之一——NVIDIA nvprof / nvvp,该工具是英伟达N卡GPU编程中用于观察的利器。全称是NVIDIA Visual Profiler,是由2008年起开始支持的性能分析器。交互性好,利于使用。其中记录运行日志时使用命令nvprof,可视化显示日志时使用命令nvvp。
由于nvprof在性能表现上不是很好,在复杂的GPU编程环境下,nvprof / nvvp功能大打折扣。于是NVIDIA官方近几年推出了新一代性能分析工具——NSight系列,包括NSight System和NSight Compute,其中Nsight Systems就是全新一代的nvprof,可以用于监测代码执行效率及分析性能。
官方更加建议使用新的工具——NSight系列,给出的原因是NSight运行时消耗的资源更少,统计的数据更加贴近实际运行情况的数据。相比之下使用nvprof/nvvp方式运行时消耗资源较多,数据统计容易不准确。
安装与使用
注:本安装过程适用于macOS 系统版本11(Big Sur) 及以上
Mac自从不再支持英伟达显卡后,只能使用nvvp和NSight等工具查看profile文件。
要使Mac能查看profile,需要安装JDK环境和NSight工具包。安装过程可以参考官网。
-
点击zulu8.23.0.3-jdk8.0.144-macosx_x64.dmg安装jdk
-
建立libjvm.dylib的软链接
sudo ln -s /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/libserver.dylib
注:后续jdk初次被调用时可能会遇到’lib.dylib’ cannot be allowed to run because its origin cannot be verified的报错,说明jdk运行时被Mac系统拦截,这是由于安全性设置导致的。打开系统安全性设置点击允许(‘System Preferences’ → ‘Security & Privacy’ → ‘General’)。
- 使用NSight System查看profile
可以直接通过点击图标打开
启动界面:
需要注意的是,如果jdk版本不是上述版本,可能导致程序无法打开。
打开以qdrep为后缀的profile文件(xxx.qdrep):
选中部分timeline:
放大缩小以查看timeline:
按住command键后滚动鼠标滑轮即可。
6. 使用nsys命令生成profile文件
nsys profile -o profile_name.qdrep python test.py
使用上述脚本可以生成可供NSight System查看的profile文件。
注:nsys可执行文件一般在/usr/local/cuda/bin目录下。
参考资料
[1] Nvidia Developer - Performance Analysis Tools
[2] NVIDIA Visual Profiler
[3] NVIDIA Nsight Systems
[4] NVIDIA Nsight Compute
[5] [腾讯机智] tensorflow profiling工具简介——nvprof和nvvp
[6] [腾讯机智] tensorflow profiling工具简介——nsight系列
[7] CUDA Toolkit v11.1.1 Doc - Profiler - Visual Profiler
[8] NVIDIA CUDA Toolkit - Developer Tools for macOS
[9] macOS Catalina(10.15)解决阻止程序运行“macOS无法验证此App不包含恶意软件”
[10] Understanding the Visualization of Overhead and Latency in NVIDIA Nsight Systems
[11] NVIDIA nvprof / nvvp工具安装和使用介绍
[12] NsightSystems-macos-public-2020.5.1.83-db7e763.dmg