【问题标题】:how to profile CUDA using Nvidia Visual Profile with Matlab如何使用 Nvidia Visual Profile 和 Matlab 分析 CUDA
【发布时间】:2013-10-08 05:18:51
【问题描述】:

我需要从 Matlab 分析我的 CUDA 代码。我一直在将一些 matlab 代码转换为 CUDA 以提高性能。我通过调用调用 CUDA 的 mexFunction 来做到这一点。 matlab feval 函数没有提供足够的控制。我可以通过 VS 运行 mexFunction 来调试它,但我也需要调试内核,因为我相信这是问题所在。

那么,我的问题是,在执行调用它的 matlab 函数时,如何通过分析器运行 CUDA 代码?

将所有输入的值硬编码到 CUDA 函数中是不切实际的。

我正在使用 Tesla C2050 GPU 卡在 Windows 7 64 位上运行 Matlab 2012a 64 位

【问题讨论】:

    标签: matlab cuda profiler


    【解决方案1】:

    如果您需要的是分析您的性能,而不是 nSight 还为您提供的调试功能,您可以使用我使用的以下技巧在可视分析器上运行 matlab 程序,而无需使用测试 main 函数制作 exe :

    创建一个批处理文件

    matlab -nojvm -nodesktop -wait -sd "yourBaseFolder" -r "theMFunctionYouWantToRun;exit;"
    

    然后在 nVidia Visual Profiler 上运行脚本。

    我正在使用 feval CUDA API,所以这具有向您展示 Matlab 实际在做什么的额外优势。我想它也应该在使用 MEX 时工作,但从未尝试过。让我知道它是否也适用于 MEX 文件。

    【讨论】:

      【解决方案2】:

      您可以通过以下过程使用 NVIDIA Visual Profiler 分析 Matlab mexfiles,包括 CUDA 代码。

      1. 按照Compiling CUDA mex files with Visual Studio 中的指南编写包含 CUDA 代码的 mexfile。
      2. 在您的 mexfunction 末尾添加 cudaDeviceReset()
      3. 编写您的 Matlab .m 文件末尾添加 exit
      4. 启动 NVIDIA Visual Profiler。文件 -> 新会话。
      5. 文件:添加Matlab可执行文件的完整路径,例如C:\Program Files\MATLAB\R2012b\bin\win64\MATLAB.exe。
      6. 工作目录:添加Matlab .m 文件的完整路径
      7. 参数:-nojvm -nosplash -r file_name_without_m_extension
      8. 下一步 -> 完成,就是这样!

      【讨论】:

        【解决方案3】:

        NVIDIA Nsight Visual Studio Edition 2.2 应该能够分析您的内核。

        1. Nsight |新的分析活动
        2. 将 Activity Type 设置为 Profile CUDA Process Tree(matlab 可以启动另一个可执行文件)
        3. Experiments to Run 设置为 All

        Nsight Visual Studio CUDA Profiler 有两个特性可以实现这一点:

        1. 活动 Profile CUDA Process Tree 将分析 CUDA 进程和已启动进程的所有子进程。这一点很重要,因为我认为 Matlab 的默认实现是启动 32 位变体,如果在 64 位系统上启动 64 位可执行文件,因此仅启动 Matlab 是不够的。

        2. Nsight 分析器支持应用程序内核重放,它支持在应用程序的一次执行中使用相同的输入多次运行内核。

        NVIDIA Visual Profiler 通过多次运行应用程序来收集结果。它不支持启动器应用程序。这可以通过直接启动正确版本的 Matlab.exe 来克服。由于应用程序重放机制,如果您可以自动运行 mexFunction,则可以使用 Visual Profiler 进行分析。我没有尝试使用 Visual Profiler 分析 Matlab,但我知道 Nsight 团队过去已经对此进行了测试。

        【讨论】:

        • VS2010 lite 没有 Nsight 可用,我无法找到一个有信誉的站点来下载它。你知道我可以从哪里下载它吗,我是否正确地假设它可以与 VS2010 lite 一起使用。我也有完整的专业版 VS2005,如果有什么不同的话。
        • Nsight Visual Studio Edition(以前的 Parallel Nsight)需要 Visual Studio 版本来支持插件。 Microsoft 禁用 Visual Studio 表达式版本上的插件包。 Nsight 支持 Visual Studio 2008 SP1 和 2010 SP1 专业版及更高版本。您可以在 developer.nvidia.com 下载 Nsight。
        • 您可以使用 CUDA 5.0 RC 中的 nvprof 命令行分析器进行分析。 nvprof 的输出可以加载到 Visual Profiler 中。
        猜你喜欢
        • 2016-06-22
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多