Код CuDNN дает статус CUDNN_STATUS_EXECUTION_FAILED только в выпуске - PullRequest
0 голосов
/ 05 апреля 2019

Я собираю git-версию фреймворка MXNet, который использует CuDNN внутри своего кода.Всякий раз, когда MXNet компилируется в режиме отладки, мой тестовый пример работает нормально, а моя нейронная сеть обучается.Однако, когда я переключаюсь в режим выпуска, выполнение не проходит тест, и я получаю следующую ошибку: Check failed: e == CUDNN_STATUS_SUCCESS (8 vs. 0) cuDNN: CUDNN_STATUS_EXECUTION_FAILED.

Примечание: я не вижу никакого кода выпуска / отладки, который мог бы объяснить другое поведение.И у меня не было никаких проблем с выпуском и версией отладки, пока я не активировал CuDNN, поэтому я верю, что это виновник.

Симптомы: - Код не обязательно падает в том же месте,Но это всегда во время CUDNN_CALL (это макрос, который вызывает функцию CuDNN и проверяет статус).- На моем графическом процессоре не выделено памяти, в которой в любом случае достаточно памяти для такой сети, поэтому проблем не должно быть.- Это происходит только в выпуске - в отладке, он работает просто отлично.

Вот пример, где я получаю ошибку:

CUDNN_CALL(cudnnAddTensor(s->dnn_handle_,
                                &alpha,
                                bias_desc_,
                                bias.dptr_ + bias_offset_ * g,
                                &beta_add,
                                out_desc_,
                                out_ptr + out_offset_ * g));

Итак, что может быть причинойтакая проблема?

1 Ответ

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

По какой-то причине обновление версии CuDNN до 7.4 помогло мне.Так что я думаю, это была действительно проблема с CuDNN на моей стороне.Я могу только предположить, что исправление ошибки решило мою проблему, или я использовал версию, которая была не полностью совместима с моим графическим процессором и т. Д.

...