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

And*_*uri 5 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();
Run Code Online (Sandbox Code Playgroud)

我做了以下,如互联网上的几个地方所述:

  1. 编译的mex文件.测试他们.他们工作.
  2. exit在test.m结束时添加.
  3. 启动NVIDIA Visual Profiler.文件 - >新会话.
  4. 例如,添加Matlab可执行文件的完整路径 C:\Program Files\MATLAB\R2014b\bin\matlab.exe
  5. 工作目录:添加Matlab .m文件的完整路径. C:\CUDA_MATLABtests\MyToolbox
  6. 参数: -nojvm -nosplash -r test

但是,当我运行探查器时,我得到了

======== Warning: No CUDA application was profiled, exiting
Run Code Online (Sandbox Code Playgroud)

仅此而已.

我错过了一些指示?

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

Dan*_*iel 5

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

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

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