我有一个使用CUDA的卷积内核,该卷积内核经常被调用(用于实时渲染)。每次我想调用内核时都应该使用cudaMalloc和cudaFree吗?我试图存储一个指向cudaMalloc结果的指针,并仅在内核执行之前执行cudaMemcpy的操作,但是我遇到了奇怪的行为(例如内核执行之后的空内存)

我也在考虑使用固定内存,但是如果每次都必须分配并释放它,甚至可能会使应用程序变慢。对于经常被调用的内核,我应该如何进行?

最佳答案

听起来您的工作应该可行。

也许您的内核中有错误。内核启动进行调试后,尝试添加cudaThreadSynchronize和cudaGetLastError调用。

没有更多信息,我无法为您提供更多建议。

关于c++ - CUDA-每次都必须分配和释放内存吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10133701/

10-14 18:56
查看更多