2015-06-29 6 views
3

Я бегу к cuda-memcheck отлаживать свой код и вывод следующим образомтрассировки для имени функции с выхода Cuda-MemCheck

========= Program hit cudaErrorCudartUnloading (error 29) due to "driver shutting down" on CUDA API call to cudaFree. 
=========  Saved host backtrace up to driver entry point at error 
=========  Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x2e40d3] 
=========  Host Frame:./nmt [0x53526] 
=========  Host Frame:./nmt [0xfbd9] 
terminate called after throwing an instance of '=========  Host Frame:/lib/x86_64-linux-gnu/libc.so.6 [0x3c259] 
=========  Host Frame:/lib/x86_64-linux-gnu/libc.so.6 [0x3c2a5] 
=========  Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xfc) [0x21ecc] 
thrust::system::system_error' 
=========  Host Frame:./nmt [0x530a] 
========= 
    what(): driver shutting down 
========= Error: process didn't terminate successfully 
========= Internal error (20) 
========= No CUDA-MEMCHECK results found 

Можно сказать, от линии Host Frame:./nmt [0x53526] где нарушается в код? Если да, то как я могу это сделать?

Спасибо.

+2

http://docs.nvidia.com/cuda/cuda-memcheck/#stack-backtraces – talonmies

+0

Это отличный ресурс. Спасибо @talonmies –

+1

Да, если есть сомнения, прочитайте документацию – talonmies

ответ

2

Как указано в @talonmies (я подозреваю, что он не будет возражать, если я отправлю ответ CW), инструмент cuda-memcheck обеспечивает дополнительную функцию отслеживания стека, которая может быть включена с помощью переключателя --show-backtrace, добавленного в командную строку.

Задний след может состоять как из хоста и устройств функций (например, хост и устройство обратно следы.)

Если заявка была также составлена ​​с символьной информации хоста отладки (например -g на Linux), то cuda-memcheck может показать имена функций для функций хоста в backtrace хоста.

Дополнительная информация об использовании доступна в documentation.