Cuda abort with error: различия между версиями
(Новая страница: «{{function begin|__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__…») |
|||
Строка 8: | Строка 8: | ||
# Текстовое описание задается статически заданной строкой или байтовым массивом символов. | # Текстовое описание задается статически заданной строкой или байтовым массивом символов. | ||
# Вызов, задающий код ошибки без описания. | # Вызов, задающий код ошибки без описания. | ||
# Вызов, задающий код ошибки без описания.}} {{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| | # Вызов, задающий код ошибки без описания.}} {{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]]) , его эффект игнорируется. |
Версия 14:04, 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. Если при одновременном выполнении другого ядра kernel на том же устройстве CUDA производится вызов функции cuda_abort_with_error (в момент времени после оригинального вызова cuda_abort_with_error и до вызова cuda_stream_synchronize) , его эффект игнорируется.