我下载了CUDA 6.0 RC并在我的应用程序中使用"cudaMallocManaged"测试了新的统一内存.但是,我发现这个内核速度变慢了.
与cudaMallocManaged(~0.63)相比,使用cudaMalloc后跟cudaMemcpy更快(~0.56).这是预期的吗?
其中一个网站声称cudaMallocManged用于"更快的cuda内核原型",所以我想知道哪个应用程序在性能方面更好?
谢谢.
我有一个cuda内核,当从单个CPU线程调用时,它可以正常工作。但是,当从多个CPU线程(〜100)调用同一内核时,大多数内核似乎根本不执行,因为结果全为零。有人可以指导我如何解决此问题吗?
在当前版本的内核中,我在内核调用结束时使用cudadevicesynchronize()。在这种情况下,在cudaMalloc()和内核调用之前添加sync命令会有帮助吗?
还有另一件事需要澄清。例如,如果两个CPU线程执行相同的cudaMalloc()命令,则后者会覆盖GPU内存中的前者还是会创建自己的内存?
在此先感谢您的帮助