3

我正在 Windows 平台上使用 CUDA。在 Windows 平台上,我们可以访问 Parallel Nsight 和 Visual Profiler。两者都非常好,但是它们具有几乎相似的分析和跟踪功能。有人能告诉我它们有什么不同吗?哪一个更适合 Windows 平台?我基本上需要一个分析工具。

4

3 回答 3

6

与 Visual Profiler 相比,Nsight Visual Studio 2.2 版具有以下优势:

总体

  1. 集成到 Visual Studio 2008 SP1 和 2010(需要专业版,因为 VS Express 版不支持集成包)。

  2. 本地和远程分析会话。远程会话也可以配置为将应用程序和资源复制到远程系统。

  3. 从目标应用程序或进程树中收集信息。

  4. 报告视图支持更高级的分组和过滤。数据表可以导出到excel。

追踪活动

  1. 跟踪操作系统活动,包括进程、线程和模块生命周期、线程上下文切换、线程等待原因、CPU 利用率、进程 CPU 利用率和线程利用率。

  2. 收集 CUDA、OpenGL 2.x-3.x、DirectX 9-11 和 OpenCL 1.1 的 API 和 GPU 工作跟踪,并在时间线上显示所有信息。

  3. 收集所有跟踪的 API 调用或仅当跟踪的 API 调用返回错误时的调用堆栈跟踪。

  4. CUDA 软件计数器显示每个上下文分配的内存。

  5. 对跟踪哪些信息的额外控制。这很关键,因为跟踪太多信息会导致应用程序受 CPU 限制。

  6. 来自 NVIDIA 工具扩展库和 D3D 性能标记的用户注释的时间线和树显示。

CUDA 分析活动

  1. CUDA 分析器提供了一种方法来捕获您的内核并多次重播它,这对您的应用程序是透明的。这允许在非确定性应用程序中收集分析数据,并且只需启动 1 次应用程序。Visual Profiler <= 5 要求应用程序具有确定性,以便它可以多次重新启动应用程序。

  2. 支持收集 Visual Profiler 尚不支持的许多有用指标,包括符合条件的 warp,这是了解是否有足够的占用率和 warp 停顿原因的最关键指标,可帮助您了解限制应用程序性能的因素。

Visual Profiler 具有以下优点:

  1. 跨平台。

  2. 提供专家系统来审查收集的信息。

  3. 结果中的链接到 CUDA 最佳实践指南。

  4. 单击事件时,时间轴可以显示 CPU 和 GPU 事件之间的相关性。

  5. CUDA 5.0 支持新的命令行分析器 (nvprof)。

  6. CUDA 5.0 支持分支分歧和具有不良访问模式的内存访问的源关联。

  7. CUDA 5.0 分析器集成到 Nsight Eclipse 版中。

  8. 更好地支持 Tesla PM 计数器。

CUDA 5.0 中的 Visual Profiler 添加了 Nsight 1.5 和 2.x 中可用的许多功能,包括

  • NVIDIA 工具扩展库,用于使用可在时间轴中显示的范围和标记来注释您的应用程序。

  • Fermi 和 Kepler GPU 上的并发内核跟踪。

这两种工具都将为您提供非常有用的信息来分析您的应用程序。我建议您使用每个工具的最新版本。

即将发布的 Nsight VSE 版本将具有许多用于调查 CUDA 内核执行的新功能。有关详细信息,请参阅http://developer.download.nvidia.com/GTC/PDF/GTC2012/PresentationPDF/S0430-GTC2012-Developing-CUDA-Nsight.pdf

于 2012-09-20T18:38:54.713 回答
3

编辑(改变主意):基于对 NVIDIA Parallel Nsight 和 Visual Profiler 的重新评估,我现在发现 NVIDIA Parallel Nsight 在性能分析方面要好得多。

@Jeff Davis 的回答进一步解释了原因。

于 2012-02-25T21:43:05.487 回答
1

Parallel Nsight 具有直接内置到 Visual Studio 中的优势,并为 Windows 开发人员提供了自然的工作流程。

  • 在 Parallel Nsight 2.2 中,只要将目标设置为“localhost”,就会自动启动 Monitor。分析和 CUDA 分析以及 CUDA 调试都是如此。

  • Monitor 需要很短的时间才能启动(与启动您最喜欢的 Web 浏览器的时间大致相同),但只有一次。在 Monitor 终止或机器重新启动之前,无需再次启动 Monitor。

于 2012-05-10T22:09:01.563 回答