Cuda abort with error
__device__ void cuda_abort_with_error(device_error_code_t err, const char* pDescr, std::size_t cbDescr); //1
template <std::size_t N>
__device__ void cuda_abort_with_error(device_error_code_t err, const char (&pDescr)[N]); //2
__device__ void cuda_abort_with_error(device_error_code_t err, std::nullptr_t); //3
__device__ void cuda_abort_with_error(device_error_code_t err); //4
Устанавливает код ошибки с опциональным связанным текстовым описанием в глобальной памяти устройства, на котором производится вызов, и досрочно завершает выполнения ядра (kernel) CUDA.
- Текстовое описание задается динамическим байтовым C-массивом и его размером.
- Текстовое описание задается статически заданной строкой или байтовым массивом символов.
- Вызов, задающий код ошибки без описания.
- Вызов, задающий код ошибки без описания.
- Параметры шаблона
N Размер массива-строки для перегрузки 2. - Параметры
err Код завершения ядра CUDA. [in] pDescr Текстовое описание, ассоциируемое с ошибкой err. [out] cbDescr Байтовая длина строки pDescr. - См. также
Шаблон:Relation diagram usage Диаграмма отношений
Установка ошибки на устройстве CUDA имеет эффект для всего устройства - всех ядер, всех потоков stream и всех потоков центрального процессора.
При вызове на хосте функции cuda_stream_synchronize при установленном на текущем устройстве CUDA ненулевом коде ошибки производится сброс устройства и генерация исключения cuda_user_exception.
Для использования функций cuda_abort_with_error и cuda_stream_synchronize вызов ядра CUDA должен быть выполнен с помощью cuda_kernel_call.
Если при одновременном выполнении другого ядра kernel на том же устройстве CUDA производится вызов функции cuda_abort_with_error (в момент времени после оригинального вызова cuda_abort_with_error и до вызова cuda_stream_synchronize) , его эффект игнорируется.