Карточка CUDA время от времени вырывается из-за промежуточного запуска Launch Failure вместе со Snow - PullRequest
1 голос
/ 20 апреля 2011

Я хотел бы сделать снимок того, что происходит с моим экраном, но скриншот не запечатлеть его, но лучшее описание - снег.

Один из моих проектов имеет обыкновение случайно проваливаться на новой итерации, и я всегда предполагал, что это «Вы используете слишком много памяти, дурак!» ошибка, поэтому был рад перезагрузить, разобраться с ней и попытаться исправить проблему.

Затем я начал фактически контролировать назначенную глобальную память; Его константа примерно на 70% свободна в течение всего времени исполнения, пока внезапно не умрет от свежего мальлока.

Чтобы еще больше беспокоить, эти медитации Гуру начали привычно появляться в моем dmesg; все (что я заметил) с одним и тем же адресом.

NVRM: Xid (0000:01:00): 13, 0008 00000000 000050c0 00000368 00000000 00000080 

Какие-нибудь слова от мудреца о том, что, черт возьми, происходит? Я все еще продолжаю расследование проблем с реестром и общей памятью, но хотел бы начать этот вопрос для любых идей, которые есть у кого-то еще.

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Если ни одно из ваших выделений памяти CUDA не выполнено, то ваша проблема не в том, что у вас недостаточно памяти (если бы это было так, это могло быть связано с фрагментацией, а не обязательно из-за 100% + потребления).

Если вы получаете эффект рождественского дерева, то у вас, вероятно, есть ядро, которое пишет вне выделенной памяти. Проверьте индексы пикселей / ячеек массива, к которым вы обращаетесь, и вычисление смещения памяти их положения в выходных буферах.

Вы также можете попробовать использовать 1D-индекс при вызове ядер, чтобы упростить вычисления. (Вы можете смоделировать любой многомерный массив как длинный одномерный массив.)

0 голосов
/ 21 апреля 2011

Оберните все вызовы CUDA Runtime API с помощью cudaSafeCall() и добавьте cudaCheckError() после всех вызовов ядра. Эти служебные функции представлены в cutil.h. Это должно помочь вам обнаружить любые ошибки CUDA в том месте, где они действительно произошли, а их сообщение об ошибке должно помочь вашему расследованию.

...