У меня странная проблема при отладке моего кода CUDA в Nsight 2.1.У меня есть две глобальные функции, которые вызываются из моего main.cu следующим образом:
dim3 block(threadsPerBlock);
dim3 grid(numBlocks);
InitPhotons<<<grid,block>>>(devicerun,sources[i],1);
cudaThreadSynchronize();
MC<<<grid,block>>>(devicerun,sources[i],1);
Я могу успешно достигать точки останова в InitPhotons, и один шаг через эту функцию.Однако я могу достичь только первой точки останова, которую я установил в MC.Если я пытаюсь выполнить пошаговое выполнение функции (F10 в VS), отладчик ведет себя так, как будто я использовал команду продолжения (F5), и больше не достигает точек останова.
Кто-нибудь еще сталкивался с этой проблемой?У кого-нибудь есть идеи для решения?
Я использую Parallel NSight 2.1 с CUDA 4.1 RC2 в Visual Studio 2010 Pro.Я компилирую с флагом -G0, и оптимизация отключена.
Редактировать: Кажется, проблема в размере памяти исправлений кода по умолчанию.Я изменил коэффициент памяти исправления кода с 2 на 4, и все работает нормально (Nsight-> Параметры-> CUDA-> Коэффициент памяти исправления кода).