Visual Studio 2010中的NVIDIA Visual Profiler,调试和发布模式

时间:2013-01-09 20:30:13

标签: visual-studio-2010 cuda

我是Visual Studio 2010的新手,因为我习惯使用Linux作为操作系统使用nvcc编译我的CUDA代码。顺便提一下,在本期和NVIDIA开发者专区论坛的一些帖子中,我已经阅读了关于在Visual Studio中正确编译的警告(调试/发布模式,请参阅link了解两者之间的区别)以正确使用NVIDIA Visual Profiler 。在我的(不良)理解中,Visual Studio在“调试”模式下自动编译,但是对于成功的配置文件,“发布”模式是必要的。

我的(简单)问题是:

1)如何从“调试”模式切换到“释放”模式?是否足以使用属性 - >配置属性并选择“Release”而不是“Active(Debug)”?另外,我注意到每次想要重建项目时都必须重复选择。

2)这是否足以正确使用Visual Profiler?

非常感谢你。

2 个答案:

答案 0 :(得分:2)

1)您在错误的位置从Debug切换到Release。您正在使用的设置仅用于选择要查看或编辑的构建设置。您应该使用Build | Configuration Manager工具栏中的Solution Configurations或(更简单)Standard下拉框。如果您没有看到Standard工具栏,请在菜单中右键单击工具栏区域,然后在那里选择它。您将发现现在不必为每个构建重新选择设置。

2)即使在调试模式下,CUDA编译器也会积极优化。我不知道你使用的配置是否重要。两者都应该有效。您可以尝试看看是否有任何不同的结果。

答案 1 :(得分:1)

请参阅Roger Dahl关于如何设置配置的答案。

有几种形式的分析。

效果分析

这绝对应该在CUDA内核上启用优化时完成。禁用优化和指定调试信息比CPU执行更多操作,但它会对将影响计数器的代码(堆栈溢出检查)进行其他修改。

源级别分析

这可以在Debug或Release版本上完成。 Nsight 3.0 CUDA Profiler具有源级实验,可显示每个C源,PTX或SASS线的统计数据。 CUDA 5.0 Visual Profiler支持代码相关实验,但不会显示每行的结果(仅有问题的行)。禁用优化将为SASS到PTX到C代码映射提供更准确的线路信息。对于许多分析案例,这很好。但是,如果您想了解每个C行的代码生成,那么您应该启用完全优化并大量查看SASS代码,并仅使用C源代码和PTX作为指南。

要获得C源级别关联,您需要使用默认的调试配置来生成完整的调试信息,或使用启用-lineinfo的自定义配置。可以使用以下步骤启用此选项:

  1. 打开解决方案资源管理器
  2. 右键单击.cu文件或项目文件
  3. 执行Properties命令
  4. 在左侧窗格中,选择树节点Configuration Properties | CUDA C/C++ | Device
  5. 在右侧窗格中,将Generate Line Number Information更改为Yes
  6. 在CUDA 5.0中,-lineinfo对代码生成有几个小的影响因此不建议在Release配置中保持启用。