Я хотел бы отметить, что утверждение может произойти только в одном потоке, но если вы решите досрочно прекратить этот поток, его отсутствие может вызвать другие ошибки (и, вероятно, другие утверждения), происходящие позже;возможно, приведет к полному сбою ядра и потере всей информации о графическом процессоре.
Кроме того, ответ, заданный на « Использование assert в вызове ядра », будет работать, только если assert используется напрямую.в функции __ global__, а не глубже, где-то внутри функции __ device__.
Мое предложение состоит в том, что даже утверждение не выполняется, вы продолжаете работу с вашим кодом, но оставляете сообщение об ошибке.Вы можете использовать сопоставленную закрепленную память (вы отображаете память ОЗУ хоста в адресное пространство GPU) для хранения кодов ошибок / сообщений.Таким образом, даже если ваше ядро выйдет из строя и GPU будет сброшен, вы, вероятно, получите ценную информацию в этой отображенной памяти.Если я не ошибаюсь, подключенная, закрепленная память поддерживается практически всеми устройствами Compute Capability 1.1 и выше.