是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
Are there any in built CUDA functions which allows a CUDA kernel to report error to the host code?
我正在编写一个CUDA内核来执行哈希。一旦我得到一个输入,我首先尝试用一个预定义的哈希桶大小对它进行哈希,在哈希期间,如果发生溢出,那么我需要使用更大的桶大小重新进行哈希。所以我想知道如果发生桶溢出,是否有任何内置cuda功能允许我向主机代码报告错误。我知道我可以写一些东西到预定义的内存位置,然后让主机代码读取它,但我更愿意使用一些内置的原语,如果可用的话。
CUDA在所有当前支持的硬件(sm_20及更新版本)上都支持断言。根据文档,这样做是合法的:
__global__ void testAssert(void)
{
int is_one = 1;
int should_be_one = 0;
// This will have no effect
assert(is_one);
// This will halt kernel execution
assert(should_be_one);
}
您可以利用它将错误条件发送到调用主机代码。
相关文章:
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 如何在 cuda 中将 kd 树从主机复制到驱动程序
- 分离库的主机端和 CUDA 设备端版本
- 为什么以下 POP 功能无法在主机或设备 (CUDA) 上运行?
- 如何在 cuda 中将结构的指针变量从主机复制到设备
- CUDA 主机 - 设备同步
- CUDA 设备主机复制非常慢
- 为什么不能重载CUDA C++类的主机/设备成员函数
- 如何在Cuda中将2D阵列从设备复制到主机
- 如何将变量从主机上的自定义类数组复制到 CUDA 中设备上的浮点数组中
- 在 CUDA 设备代码和主机代码中创建模板类对象时未解析的外部函数
- CUDA中设备函数指针的分配(来自主机函数指针)
- CUDA:查明主机缓冲区是否被固定(页面锁定)
- 主机循环的CUDA布尔变量
- 我什么时候应该首选写入组合 CUDA 分配的映射主机内存
- 我可以在 CUDA 中同时对设备和主机类使用矢量吗?
- 在每个主机线程(多线程 CPU)上创建一个 cuda 流
- 如何从 cuda 中的设备函数调用现有主机函数
- 两个单精度浮点向量的点积在 CUDA 内核中产生的结果与在主机上的结果不同
- 如何从主机代码中断或取消 CUDA 内核