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__…») |
|||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: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 | {{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> | template <std::size_t N> | ||
Строка 8: | Строка 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| | # Вызов, задающий код ошибки без описания.|lang=cu}} | ||
{{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>.}} | |||
{{function paramlist end}} | |||
{{function sa begin}} | |||
{{function sa add|[[cuda_error_info]]|{{cuda_error_info brief}}}} | |||
{{function sa add|[[cuda_kernel_call]]|{{cuda_kernel_call brief}}}} | |||
{{function sa add|[[cuda_stream_synchronize]]|{{cuda_stream_synchronize brief}}}} | |||
{{function sa end}} | |||
{{function end}} | |||
Установка ошибки на устройстве 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]]) , его эффект игнорируется. |
Текущая версия на 16:34, 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. |
cbDescr | Байтовая длина строки pDescr. |
cuda_error_info | Класс состояния, которое переносит сведения об ошибке, сгенерированной на устройстве CUDA с помощью cuda_abort_with_error. |
cuda_kernel_call | Если необходимо, создает и инициализирует и инициализирует разделяемое состояние для ядер CUDA, после чего производит вызов указанного ядра. |
cuda_stream_synchronize | Синхронизирует выполнение задач, связанных с указанным потоком CUDA stream, и производит дополнительную общую постобработку результатов. |
Установка ошибки на устройстве 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) , его эффект игнорируется.