我正在尝试分析嵌入在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所述做了以下内容:
exit
C:\Program Files\MATLAB\R2014b\bin\matlab.exe
C:\CUDA_MATLABtests\MyToolbox
-nojvm -nosplash -r test
然而,当我运行探查器时,我得到了
======== Warning: No CUDA application was profiled, exiting
仅此而已。
我错过了一些指示?
是否有任何特定的代码结构会导致探查器无法分析?
答案 0 :(得分:5)
Matlab安装附带两个二进制文件,<matlabroot>\bin
中的启动器和<matlabroot>\bin\<arch>
中的主应用程序。后者是可执行文件,它还在其地址空间中执行mex函数。
<matlabroot>\bin\<arch>
中启动它。<matlabroot>\bin
设置-wait
参数时启动二进制文件就足够了。看到启动器应用程序终止,调试工具经常停止。除非必须,否则不要直接使用<matlabroot>\bin\<arch>
中的二进制文件。