Nsight пропускает (игнорирует) контрольные точки в VS10 Cuda работает нормально, nsight постоянно пропускает несколько контрольных точек

Я использую nsight 2.2, Toolkit 4.2, последний драйвер nvidia, я использую пару графических процессоров на своем компьютере. Сборка по индивидуальному заказу 4.2. Я установил «генерировать вывод GPU» в свойствах проекта CUDA, включен монитор nsight (все выглядит отлично).

Я установил несколько точек останова в своей глобальной функции ядра. nsight останавливается на объявлении функции, но пропускает несколько точек останова. это похоже на то, как nsight решает, следует ли нажать точку останова или пропустить точку останова. Самое смешное, что nsight останавливается на циклах for, но не останавливается на простых операциях присваивания.

Еще одна проблема заключается в том, что я не могу установить фокус или добавить переменные в список наблюдения. В этом случае (см. прикрепленный скриншот) я не могу определить значение переменной: «posss» или «testDetctoinRate1». которые являются регистрами в этом случае. с другой стороны, общая память или блочная память будут автоматически вставлены в локальный список.

Вот снимок экрана ядра до отладки.

Вот снимок экрана во время отладки.

Я вызываю функцию ядра следующим вызовом:

checkCUDA<<<1, 32>>>(sumMat->rows,sumMat->cols , (UINT *)pGPUsumMat); 
cudaError = cudaGetLastError();
if(cudaError != cudaSuccess)
{
    printf("CUDA error: %s\n", cudaGetErrorString(cudaError));
    exit(-1);
}

вызов ядра работает без ошибок.

Есть ли возможность принудительно останавливать nsight во всех контрольных точках? Как я могу добавить регистры потока в свой список наблюдения?

Будем признательны за любую помощь. Я могу опубликовать свой код по запросу

Ура


Первоначально моя командная строка отладки выглядит следующим образом:

API среды выполнения (тип компиляции NVCC — гибридный объект или файл .c)

set CUDAFE_FLAGS=--sdk_dir "c:\Program Files\Microsoft SDK\Windows\v7.0A\" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files\Microsoft Visual Studio 10.0 \VC\bin" -I"......\opencv\modules\gpu\src\opencv2\gpu\device" -I"......\opencv\modules\gpu\include\opencv2\gpu "-Я"......\build\include\" -G --keep-dir "Отладка" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd" -o "Отладка\%( Имя файла)%(Расширение).obj" "%(FullPath)"


Я изменил на странице свойств --> cuda --> хост --> генерировать отладочную информацию о хостинге --> Нет

Теперь моя командная строка не не содержит букв -g и -O, моя командная строка выглядит следующим образом:

Runtime API (тип компиляции NVCC — гибридный объект или файл .c)

set CUDAFE_FLAGS=--sdk_dir "c:\Program Files \Microsoft SDK\Windows\v7.0A\" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files\Microsoft Visual Studio 10.0 \VC\bin" -I"......\opencv\modules\gpu\src\opencv2\gpu\device" -I"......\opencv\modules\gpu\include\opencv2\gpu " -I"......\build\include\" -G --keep-dir "Отладка" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nolgo /Od /Zi /MDd " -o "Debug\%(Filename)%(Extension).obj" "%(FullPath)"

хотя я выполняю отладку с помощью -o , имеет ли это значение? Это ничего не меняет

5
задан TripleS 1 June 2012 в 16:07
поделиться