Я пытаюсь профилировать код CUDA, встроенный в файл mex, вызываемый из MATLAB. Запуск на win7 x64 машине, MATLAB r2014bПрофилирование приложений MATLAB mex CUDA с визуальным профилировщиком NVIDIA
Код структурирована следующим образом:
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 в интернете:
- Составитель MEX файлы. Проверьте их. Они работают.
- Добавить
exit
в конце испытания.m. - Запустите визуальный профайлер NVIDIA. Файл -> Новая сессия.
- добавить полный путь к исполняемому файлу Matlab, например
C:\Program Files\MATLAB\R2014b\bin\matlab.exe
- Рабочий каталог: добавьте полный путь к файлу Matlab .m.
C:\CUDA_MATLABtests\MyToolbox
- Аргументы:
-nojvm -nosplash -r test
Однако, когда я запускаю профайлер, я получаю
======== Warning: No CUDA application was profiled, exiting
И ничего больше.
У меня нет инструкции?
Есть ли какая-либо конкретная структура кода, которая сделает профилировщик не профилированным?
Я думаю, что на шаге 4 вы должны использовать 'C: \ Program Files \ MATLAB \ R2014b \ bin \ win64 \ matlab.exe'. Или попробуйте использовать параметр '-wait'. – Daniel
@ Даниэль действительно .... папка win64, какая глупая ошибка. Будучи MATLAB уже в Program Files, а не в Program Files x86, я думал, что это уже 64-разрядная версия. Подумайте об этом. –