CUDA/PyCUDA: диагностика сбоя запуска, исчезающего при cuda-gdb

Кто-нибудь знает вероятные пути расследования сбоев запуска ядра, которые исчезают при запуске под Cuda-GDB? Назначения памяти находятся в пределах спецификации, при каждом запуске одного и того же ядра каждый раз происходит сбой, и (пока) он не завершился с ошибкой в ​​отладчике.

О, Великий ТАК Гуру, что теперь?

2 ответа

Решение

cuda-gdb выливает всю разделяемую память и регистрируется в локальной памяти. Поэтому, когда что-то работает нормально, построено для отладки, и в противном случае происходит сбой, это обычно означает, что доступ к разделяемой памяти выходит за границы. cuda-memcheck может помочь, в зависимости от того, какую карту вы используете. В этом отношении Fermi лучше старых карт.

РЕДАКТИРОВАТЬ: Возвращаясь к плохим старым временам, я помню, что у меня был злобный GT9500, который генерировал похожие ошибки NV13 и имел случайные сбои кода при работе с ядрами с очень большим объемом памяти и большим объемом совместной памяти. Никогда при отладке. Я поставил его на плохое аппаратное обеспечение и перешел на GT200, чтобы с тех пор не увидеть подобную ошибку. Одной из возможностей может быть плохое оборудование. Это G92 (9800GT или аналогичный)?

CUDA GDB может сделать некоторые операции cuda синхронными.

  • Вы читаете из памяти после инициализации?
  • вы используете потоки?
  • Вы запускаете более одного ядра?
  • Где и как это терпит неудачу?
Другие вопросы по тегам