Cuda abort with error: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{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|input_buffer|Описание параметра <tt>input_buffer</tt>.|paramdir=[in]}} {{function paramlist add|output_buffer|Описание параметра <tt>input_buffer</tt>.|paramdir=[out]}} {{function paramlist end}} {{function return_value|Описание возвращаемых значений}} {{function details|Детализированное описание функции.}} {{function exceptionlist begin}} {{function exceptionlist add|[http://en.cppreference.com/w/cpp/error/exception std::exception]|Описание исключения}} {{function exceptionlist 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]]) , его эффект игнорируется.

Версия 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.

  1. Текстовое описание задается динамическим байтовым C-массивом и его размером.
  2. Текстовое описание задается статически заданной строкой или байтовым массивом символов.
  3. Вызов, задающий код ошибки без описания.
  4. Вызов, задающий код ошибки без описания.
    Параметры шаблона
    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) , его эффект игнорируется.