使用NVIDIA visual Profiler分析MATLAB mex CUDA应用程序

时间:2016-03-08 17:19:15

标签: matlab cuda mex

我正在尝试分析嵌入在mex文件中的CUDA代码,该代码来自MATLAB。在win7 x64机器上运行,MATLAB r2014b

代码结构如下:

 MATLAB   test.m
    ->contains some standard code generating variables (and calling 1 or 2 minor own MATLAB fucntions)
    -> calls testcuda.mex
        ->contains small, standard, no library C++ code
        -> calls either test1.cu or test2.cu
              ->.cu files end in cudaDeviceReset();

我按照互联网上的several places所述做了以下内容:

  1. 编译的mex文件。测试他们。他们工作。
  2. 在test.m。
  3. 的末尾添加exit
  4. 启动NVIDIA Visual Profiler。档案 - >新会议。
  5. 添加Matlab可执行文件的完整路径,例如C:\Program Files\MATLAB\R2014b\bin\matlab.exe
  6. 工作目录:添加Matlab .m文件的完整路径。 C:\CUDA_MATLABtests\MyToolbox
  7. 参数:-nojvm -nosplash -r test
  8. 然而,当我运行探查器时,我得到了

    ======== Warning: No CUDA application was profiled, exiting
    

    仅此而已。

    我错过了一些指示?

    是否有任何特定的代码结构会导致探查器无法分析?

1 个答案:

答案 0 :(得分:5)

Matlab安装附带两个二进制文件,<matlabroot>\bin中的启动器和<matlabroot>\bin\<arch>中的主应用程序。后者是可执行文件,它还在其地址空间中执行mex函数。

  • 当调试工具需要直接启动应用程序时,您必须在<matlabroot>\bin\<arch>中启动它。
  • 当调试工具自动附加到子进程时,通常在<matlabroot>\bin设置-wait参数时启动二进制文件就足够了。看到启动器应用程序终止,调试工具经常停止。

除非必须,否则不要直接使用<matlabroot>\bin\<arch>中的二进制文件。