Как отладить код ошибки 77: cudaErrorIllegalAddress, когда cuda-memcheck не находит проблем? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть сложное приложение Cuda C ++, которое работает нормально, пока я не соберу код cuda -g -G. При встроенной отладке происходит сбой с cudaErrorIllegalAddress, поэтому я запустил cuda-memcheck, но проблем не возникает. Я также запустил valgrind, и он не нашел никаких проблем.

Когда cuda-memcheck ничего не находит, каковы некоторые стратегии, чтобы выяснить, где в коде Cuda происходит недопустимое чтение или запись в память? Есть ли способ с cuda-gdb, чтобы добраться до строки кода с недопустимым доступом к памяти?

1 Ответ

1 голос
/ 26 апреля 2019

Я запустил приложение под cuda-gdb, и отладчик получил точку останова при недопустимом доступе к памяти:

CUDA Exception: Warp Illegal Address
The exception was triggered at PC 0x50225260 (gpu_core.h:275)

Thread 1 "preprocess" received signal CUDA_EXCEPTION_14, Warp Illegal Address.
[Switching focus to CUDA kernel 0, grid 617, block (0,0,0), thread (0,0,0), device 0, sm 0, warp 2, lane 0]
0x0000000050225270 in thrust::cuda_cub::cub::BlockRadixSort<int, 256, 19, int, 6, true, (thrust::cuda_cub::cub::BlockScanAlgorithm)2, (cudaSharedMemConfig)1, 1, 1, 700>::BlockRadixSort (this=0x0, this=0x0, temp_storage=0xffffb17cffff159c, keys=0x1300001d1300001d, values=0x1300001d1300001d, begin_bit=<optimized out>, end_bit=<optimized out>, is_descending=..., is_keys_only=..., num_items=<optimized out>) at /home/user/git/infra/libgpu/src/gpu_core.h:275
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...