【问题标题】:NVIDIA Visual Profiler, Debug and Release modes in Visual Studio 2010Visual Studio 2010 中的 NVIDIA Visual Profiler、调试和发布模式
【发布时间】:2013-01-09 20:30:12
【问题描述】:

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

我的(简单)问题是:

1) 如何从“调试”模式切换到“发布”模式?使用 Properties -> Configuration Properties 并选择“Release”而不是“Active(Debug)”就足够了吗?另外,我注意到每次我想重建项目时都必须重复选择。

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

非常感谢您。

【问题讨论】:

    标签: visual-studio-2010 cuda


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。然后我习惯了标准工具栏中的下拉菜单。只是给其他人的建议。首次执行此操作时,请不要忘记更新计算能力编译选项和要链接的外部库。
    【解决方案2】:

    有关如何设置配置,请参阅 Roger Dahl 的回答。

    有几种形式的分析。

    性能分析

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

    源级分析

    这可以在调试或发布版本上完成。 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

    在 CUDA 5.0 中,-lineinfo 对代码生成有几个小的影响,因此不建议在发布配置中保持启用此功能。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 1970-01-01
      • 2011-07-17
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      相关资源
      最近更新 更多