注:NVIDIA Nsight Systems,简称nsys,是一个低开销的系统分析工具。nsys有Gui的也有cmd的,nvprof淘汰了,nvvp nsys都是最新的,nsys profile替换他。
nsys类似nvprof比他更丰富,nvvp可以远程实时调试。
(1)首先是先安装vs2019,这个我不再赘述
要牢记不要轻易删除掉vs相关的缓存:不然想卸载都卸载不掉,会报以下错误:
“找不到与以下参数匹配的安装产品”
(2)安装cuda显卡驱动、cuda和cudnn
安装cuda的时候要选择自定义,把nvidia compute、systems相关的都要勾选上!然后一路默认安装即可,其余的安装我这里不再赘述
(3)完成上述后,我们实际就已经有了:
那我们实际还缺少一个Nsight Graphics,所以我去网站下载了一个离线安装:
NVIDIA Nsight Graphics | NVIDIA Developer
链接:https://pan.baidu.com/s/1QcfihsdDZTYj3Cpu0s_y5Q
提取码:dt3i
(4)在vs2019中安装类似如下如所示的:
安装这个扩展有两种方法:
法一:在管理扩展中搜索 Nsight Integration,然后安装
法二:离线在网址中进行下载后,双击安装,安装完后不要急打开vs2019等待一会才会弹出
我这里直接给出 Nsight Integration安装包:
链接:https://pan.baidu.com/s/1MdVNSH8litv9Oc8Qy0fR6g
提取码:72nw
NVIDIA Nsight Integration - Installation Tips | NVIDIA Developer
NVIDIA Nsight Integration - Visual Studio Marketplace
在之前的博客《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方式运行时消耗资源较多,数据统计容易不准确。
使用NSight System查看profile。可以直接通过点击图标打开:
启动界面:
如果您使用NVIDIA Visual Profiler或nvprof命令行工具,那么现在是时候转换到更新的工具了:NVIDIA Nsight工具。
别担心!新工具仍然提供相同的分析/优化/部署工作流。您需要查看的数据类型是相同的。命令有变化,输出看起来有点不同,但是我们在这里指导您完成转换。这是一系列文章中的第一篇,旨在帮助简化从NVVP (NVVP)或nvprof到NVIDIA Nsight工具的转换。这些新工具功能强大、速度快、功能丰富,允许您更快地找到解决方案。
表1将NVIDIA Visual Profiler和nvprof的关键特性映射到NVIDIA Nsight工具。
让最好变得更好
NVIDIA Visual Profiler自2008年以来一直向客户提供,使开发人员能够解决多个应用程序领域的问题。不幸的是,改进和支持现代gpu加速应用程序不断发展和日益复杂的软件意味着从头开始重新构建它们。有三个主要原因:
数据大小
当数据文件超过100MB时,NVIDIA的Visual Profiler分析速度变慢,当运行超过2-4个gpu时,GUI刷新开始成为一个问题。NVIDIA Visual Profiler中的数据处理/可视化技术不会扩展到长时间捕获、大型服务器或大规模并行/集群系统。这是英伟达分析工具的一个重要长期目标。NVIDIA Nsight系统的用户已经对超过5000万个事件和超过2gb的数据的结果进行了分析,在可视化时没有任何明显的放缓。
收集器的权衡
NVIDIA Visual Profiler既跟踪(CUDA API和GPU活动),又剖析文件(CUDA内核)。为了扩展跟踪活动以包含更广泛的系统性能数据,将跟踪活动拆分为自己的产品是必要的,因为它越来越偏离了CUDA内核概要。例如,系统跟踪对具有过多开销的系统扰动很敏感,而内核分析需要重新运行和其他高开销的数据收集技术,这些技术需要在相同的位置使用更复杂的逻辑。Nsight Systerm现在可以专注于最小化系统分析的开销,而Nsight Compute 则专注于精确的重放机制。
未来的增强
NVIDIA Visual Profiler的收集系统以CUDA为中心,不易扩展。这使得添加额外的功能来提供一个更完整的GPU活动图片变得不切实际。NVIDIA Nsight工具包括几个额外的功能,还有更多的功能:
用于跟踪CUDA api和CPU采样的Nsight Systerm
当您在NVIDIA Visual Profiler中跟踪时,您习惯于看到如图2所示的数据。NVIDIA Nsight系统在跟踪api时提供相同的数据和控件。
NVIDIA Nsight Systems是一个低开销的系统分析工具,如图3所示。使用它来确保您知道真正的瓶颈在哪里。在深入研究CUDA内核代码之前,应该排除其他更基本的性能限制因素,比如不必要的GPU-CPU同步、CPU绑定情况,或者仅仅使用一个糟糕的CPU端作业调度算法——这正是Nsight系统可以帮助您做的。在对系统进行重大重构或硬件更改之后,将其作为初始分析器使用。如果CPU不能很好地让GPU保持忙碌状态,你将无法从一个新的更快的GPU中获得全部好处。
图4显示了当您查看NVIDIA Visual Profiler中的指标时,数据通常是如何显示的。
如图5所示,NVIDIA Nsight Compute是一个低级的CUDA内核分析工具。当NVIDIA Nsight系统显示性能不佳的内核时使用它,这些内核在代码重构中明显变得更糟,或者已经成为性能瓶颈。此外,在内核开发期间使用它,可以获得关于代码更改如何影响内核性能的即时反馈,以及如何与以前的迭代进行比较。
英伟达Nsight Graphics
NVIDIA Nsight Graphics是一个独立的开发工具,允许您调试、配置和导出使用Direct3D (11,12, DXR)、Vulkan (1.1, NV Vulkan Ray Tracing Extension)、OpenGL、OpenVR和Oculus SDK构建的框架。当NVIDIA Nsight系统显示您有一个受GPU绑定的帧或呈现程序时,请使用此功能,如图6所示。
不确定从哪里开始?
NVIDIA Nsight Systerm 是减少对应用程序执行的怀疑或误解的正确开始。它提供了一种数据驱动方法来查看应用程序如何真正使用系统资源,以及在何处集中分析工作。
对于nvprof的用户
对于nvprof的用户(你可以理解成nvvp的命令行版本),同样有个命令行的nv-nsight-cu-cli可以对应,表2中列出了以前nvprof能做的,和现在改成了用哪个工具能做, 注意一些具体的命令和命令选项可能发生了一些变化。
Nsight Systerm(nsys)。您可以通过GUI使用的任何功能也可以通过CLI使用。这包括对多进程CPU回溯、OS运行时事件追踪、阻塞状态回溯以及Windows和Linux上的许多3D图形api的新支持。
Nsight Compute(nv-nsight-cu-cli)。支持附加到远程系统的剖析目标文件,GPU时钟控制的确定性结果和可重用的部分,以推动指标收集和表示。此外,命令行还支持可定制的、基于python的规则系统,用于指导性能数据或回归测试。
以上工具都包含在CUDA工具包里,欢迎使用!
参考:
(1)NVIDIA NSight System工具安装和使用介绍(MacOS)_TracelessLe的博客-CSDN博客_nsight system
(2)是时候用NVIDIA Nsight 分析优化工具了! - 云+社区 - 腾讯云 (tencent.com)
(3)(1条消息) 【CUDA编程】nsight compute和nsight system的使用_李响Superb的博客-CSDN博客_nsight system使用
(4)1.使用nsys分析GPU应用程序_蓝鲸123的博客-CSDN博客
(5)User Guide :: Nsight Systems Documentation (nvidia.com)
(6)[每日一氵] Nsight Systems (nsys) 使用记录以及cuda程序优化_氵文大师的博客-CSDN博客_nsight system怎么用
(7)NVIDIA Nsight Systems 入门及使用_AliceWanderAI的博客-CSDN博客_nsight system
(8)【cuda】——性能分析工具_农夫山泉2号的博客-CSDN博客_cuda性能分析工具
(9)CUDA实践(1)--性能分析工具_Rita_2017的博客-CSDN博客_cuda性能分析工具
(10)[译]在CUDA C/C++中如何测试代码性能 - 简书 (jianshu.com)