2013-01-02 135 views
1

我在Arch Linux上运行:CUDA内核调用阻塞?

我已经在多个地方看到内核调用与CPU异步(将立即返回并允许CPU继续)。但是,我没有得到这种行为。

例如

kernel<<<blocks,threads>>>(); 
printf("print immediately\n"); 
check_cuda_error(); 

CPU似乎锁定并没有打印任何东西(同样没有其他执行)直到内核完成。测试各种不同执行时间(1s,2s,3s等)和计算的内核,以确保它不是我的内核。

这是驱动程序问题吗?或者我误解了某些东西

回答

2

我发现当我在X之外(在非图形环境中)运行时,我得到了预期的行为。我的假设是,虽然我的GPU在内核中努力工作,但它并没有更新屏幕上的图形,因此在打印到控制台之前似乎“挂起”了。

从shell运行提供了预期的结果,所以我正在考虑自己的问题回答。请在下方留言,您可能有更多见解