我在Arch Linux上运行:
我已经在多个地方读过内核调用与CPU异步(将立即返回并允许CPU继续)。但是,我没有得到那种行为。
e.g。
kernel<<<blocks,threads>>>();
printf("print immediately\n");
check_cuda_error();
CPU似乎已锁定,并且在内核完成之前不会打印任何内容(同样没有其他任何内容执行)。测试了各种不同执行时间(1s,2s,3s等)的内核和计算,以确保它不是我的内核。
这是驱动程序问题吗?或者我误解了什么
答案 0 :(得分:2)
我发现当我在X外部运行时(在非图形环境中),我得到了预期的行为。我的假设是,虽然我的GPU在内核中努力工作,但它没有更新屏幕上的图形,因此在打印到控制台之前似乎“挂起”。
从shell运行提供了预期的结果,所以我正在考虑回答我自己的问题。以下评论,您可能有更多的见解