Добрый день,
Не так давно я начал изучать программирование под CUDA, и столкнулся с проблемой отладки кода для устройства (не для хоста). Проблема состоит в том, что отладчик не входит в функцию, помеченную как __device__ или как __global__. В интернете я прочитал, что такое возможно если не сгенерировать отладочные символы: nvcc -g -G test.cu -o test Но всё равно даже cuda-gdb ругается на то, что отладочные символы не были загружены. У меня подозрение, что nvcc их не генерирует. Ну или генерирует, но тогда не читает.
Понимаю, что могу шокировать :) но у меня optimus ноут, работающий на bumblebee. Любое CUDA приложение через optirun выдаёт «правдивые» результаты. Например, я пытаюсь отладить приложение через optirun cuga-gdb test, и оно запускается, выполняется, но к сожалению отладчик не заходит внутрь CUDA кода.
В Windows такие же проблемы, и в VS 2010 я не могу зайти внутрь функций. Перерыв пол интернета, у меня сложилось впечатление, что либо люди отлаживают код при наличии 2-х видеокарт (у меня как бы Intel и NVIDIA 540m, но я думаю, что Intel не канает и мне нужны две видеокарты), либо в эмуляции (которой уже нет в 5-ой CUDA).
Подскажите, как у вас работает отладка, всё ли я делаю правильно или я что-то упустил. Ну и вообще будет супер, если кто имел опыт с CUDA разработкой при наличии ноута и Optimus видюхи.
Спасибо заранее.