Cuda abort with error: различия между версиями
Строка 9: | Строка 9: | ||
# Вызов, задающий код ошибки без описания. | # Вызов, задающий код ошибки без описания. | ||
# Вызов, задающий код ошибки без описания.}} {{function template paramlist begin}} {{function template paramlist add|N|Размер массива-строки для перегрузки 2.}} {{function template paramlist end}} {{function paramlist begin}} {{function paramlist add|err|Код завершения ядра CUDA.}} {{function paramlist add|pDescr|Текстовое описание, ассоциируемое с ошибкой <tt>err</tt>.|paramdir=[in]}} {{function paramlist add|cbDescr|Байтовая длина строки <tt>pDescr</tt>.|paramdir=[out]}} {{function paramlist end}}{{function sa begin}} {{function sa add|[[Шаблон:Relation diagram usage]]|Диаграмма отношений}} {{function sa end}} {{function end}} | # Вызов, задающий код ошибки без описания.}} {{function template paramlist begin}} {{function template paramlist add|N|Размер массива-строки для перегрузки 2.}} {{function template paramlist end}} {{function paramlist begin}} {{function paramlist add|err|Код завершения ядра CUDA.}} {{function paramlist add|pDescr|Текстовое описание, ассоциируемое с ошибкой <tt>err</tt>.|paramdir=[in]}} {{function paramlist add|cbDescr|Байтовая длина строки <tt>pDescr</tt>.|paramdir=[out]}} {{function paramlist end}}{{function sa begin}} {{function sa add|[[Шаблон:Relation diagram usage]]|Диаграмма отношений}} {{function sa end}} {{function end}} | ||
Установка ошибки на устройстве CUDA имеет эффект для всего устройства - всех ядер, всех потоков stream и всех потоков центрального процессора. При вызове на хосте функции [[cuda_stream_synchronize]] при установленном на текущем устройстве CUDA ненулевом коде ошибки производится сброс устройства и генерация исключения [[cuda_user_exception]]. Если при одновременном выполнении другого ядра kernel на том же устройстве CUDA производится вызов функции [[cuda_abort_with_error]] (в момент времени после оригинального вызова [[cuda_abort_with_error]] и до вызова [[cuda_stream_synchronize]]) , его эффект игнорируется. | Установка ошибки на устройстве 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]]) , его эффект игнорируется. |
Версия 15:17, 20 марта 2018
__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) , его эффект игнорируется.