前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >是时候用NVIDIA Nsight 分析优化工具了!

是时候用NVIDIA Nsight 分析优化工具了!

作者头像
GPUS Lady
发布2019-07-22 14:13:32
29.3K1
发布2019-07-22 14:13:32
举报
文章被收录于专栏:GPUS开发者

如果您使用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工具包括几个额外的功能,还有更多的功能:

  • NVIDIA Nsight Systerm增加了多进程多核CPU回溯、OS运行时事件追踪、阻塞状态回溯、DirectX、OpenGL和Vulkan追踪以及stutter分析。
  • NVIDIA Nsight Compute为CUDA应用程序添加了交互式API调试和内核分析。用户可以在内核分析器报告中设置多个“基线”来比较不同内核执行的结果。报告和规则是完全可定制的,可以使用分析脚本对其进行扩展,以实现后处理结果。

用于跟踪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中获得全部好处。

还在用NVIDIA Visual Profiler做Metrics和Events? 赶紧切换到 NVIDIA Nsight Compute吧

图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工具包里,欢迎使用!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 还在用NVIDIA Visual Profiler做Metrics和Events? 赶紧切换到 NVIDIA Nsight Compute吧
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档