我正在使用Windows平台上的CUDA。在Windows平台上,我们可以访问Parallel Nsight和Visual Profiler。两者都相当不错,但它们具有几乎相似的特征分析和跟踪功能。有人能告诉我他们两者是如何不同的,哪一个更适合Windows平台?我基本上需要一个分析工具。
答案 0 :(得分:5)
与Visual Profiler相比,Nsight Visual Studio Edition 2.2具有以下优势:
OVERALL
与Visual Studio 2008 SP1和2010集成(需要专业版,因为VS Express Edition不支持集成包)。
本地和远程分析会话。远程会话也可以配置为将应用程序和资源复制到远程系统。
从目标应用程序或流程树中收集信息。
报告视图支持更高级的分组和过滤。数据表可以导出为excel。
追踪活动
跟踪OS活动,包括进程,线程和模块生存期,线程上下文切换,线程等待原因,CPU利用率,进程CPU利用率和线程利用率。
为CUDA,OpenGL 2.x-3.x,DirectX 9-11和OpenCL 1.1收集API和GPU工作追踪,并在时间线上显示所有信息。
所有跟踪的API调用上的调用堆栈跟踪的集合,或仅当跟踪的API调用返回错误时。
CUDA软件计数器显示每个上下文分配的内存。
对追踪的信息进行额外控制。这很重要,因为跟踪太多信息会导致应用程序成为CPU限制。
来自NVIDIA工具扩展库和D3D性能标记的用户注释的时间轴和树形显示。
CUDA概况活动
CUDA探查器提供了一种捕获内核的方法,并且可以对应用程序进行多次透明重放。这允许在非确定性应用程序中收集性能分析数据,并且只需启动一次应用程序。 Visual Profiler< = 5要求应用程序具有确定性,以便它可以多次重新启动应用程序。
支持收集Visual Profiler尚未支持的许多有用指标,包括符合warp条件,这是了解您是否有足够的占用率和扭曲停顿原因以帮助您了解限制性能的最重要指标应用
Visual Profiler具有以下优点:
跨平台。
提供专家系统来审核收集的信息。
将结果链接到CUDA最佳实践指南。
时间轴可以在您点击某个活动时显示CPU和GPU事件之间的相关性。
CUDA 5.0支持新的命令行分析器(nvprof)。
CUDA 5.0支持使用错误访问模式的分支差异和内存访问的源关联。
CUDA 5.0探测器已集成到Nsight Eclipse Edition中。
更好地支持特斯拉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。
答案 1 :(得分:3)
@Jeff Davis的回答进一步解释了这些原因。
答案 2 :(得分:1)
Parallel Nsight具有内置于Visual Studio中的优势,并为Windows开发人员提供了一个自然的工作流程。
在并行Nsight 2.2中,只要目标设置为“localhost”,监视就会自动启动。这对于Analysis和CUDA分析以及CUDA调试都是如此。
Monitor需要很短的时间才能启动(大致与启动您喜爱的Web浏览器所需的时间相同),但这只是一次。在监视器终止或机器重新启动之前,无需再次启动监视器。