CUDA内核调用阻塞
CUDA kernel invocation blocking?
我在Arch Linux上运行:
我已经在多个地方读到,内核调用是异步的相对于CPU(将立即返回并允许CPU继续)。但是,我没有得到那个行为。
。
kernel<<<blocks,threads>>>();
printf("print immediatelyn");
check_cuda_error();
CPU似乎锁定了,并且在内核完成之前不会向控制台打印任何内容(同样也不会执行任何其他内容)。用各种不同执行时间的内核进行测试(1s, 2s, 3s等),并进行计算,以确保它不是我的内核。
这是驱动程序问题吗?还是我误解了什么
我发现,当我在X之外(在非图形环境中)运行时,我得到了预期的行为。我的假设是,当我的GPU在内核中努力工作时,它没有更新屏幕上的图形,因此在打印到控制台之前似乎"挂起"。
从shell运行提供了预期的结果,所以我认为我自己的问题得到了回答。在下面评论你的见解
相关文章:
- 编译为 cuda 内核调用提供了"expression must have integral or unscoped enum type"
- 如何在 openCL 的内核调用中指定数字多维
- 是否可以从 CUDA 10.1 内核调用 cuBLAS 或 cuBLASLt 函数?
- 验证调用 cuda 内核的次数
- cuda 内核调用/传递参数中的编译错误
- 内核调用会产生错误"error: a host function call cannot be configured"。调用有什么问题?
- 调用共享C++函数时 Python 内核崩溃
- 是否可以在同一设备缓冲区上一个接一个地调用 OpenCL 内核?
- 通过复制将对象传递给 CUDA 内核会调用其析构函数并过早释放内存
- 为什么调用 CUDA 内核函数时这个类成员变量没有改变
- 我可以直接访问 Windows 内核系统调用吗?
- 运行并发的CUDA内核,从C 包装器功能调用
- OpenCL 内核执行在调用 clFinish 或 clWaitForEvents 之前不会开始
- 在CUDA内核中调用new运算符
- 调用GPU内核后,CPU性能下降
- CUDA内核自动调用内核来完成向量加法.为什么?
- 在我的Linux中调用了哪个版本的close(),来自posix lib或内核
- 从内核挂钩调用 NtQuerydirectoryFile 会使内核崩溃
- CUDA - 内核调用中的编译错误
- CUDA:可能一个宿主方法调用内核/cudaMemcpy在内核/memcpy结束之前返回