如果您使用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工具包里,欢迎使用!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有