Документация для cudaErrorIllegalAddress говорит:
Устройство обнаружило инструкцию загрузки или сохранения по недействительному адресу памяти. Это оставляет процесс в несовместимом состоянии, и любая дальнейшая работа CUDA будет возвращать ту же ошибку. Чтобы продолжить использование CUDA, процесс должен быть остановлен и перезапущен.
В моем коде C ++ я позвонил:
cudaMemcpy( dst, src, size, kind );
Как определить, является ли dst
или src
недействительной памятью?
Запуск cuda-memcheck
не сообщил об ошибках и valgrind
не сообщил об ошибках. Учитывая, что этот сбой происходит только при сборке с -g -G
, какие шаги я могу предпринять для дальнейшей отладки? Есть ли способ в коде устройства проверить, произошел ли cudaErrorIllegalAddress, чтобы я мог разделить и завоевать, где в коде устройства он не работает?