我使用CUDA在GPU上实现算法,当特定输入缓冲区(3D浮点向量)包含重复条目时,肯定会给出不正确的结果。出于这个原因,我想做一个预处理步骤,以删除任何存在的重复项。
由于我知道输入数据包含大量重复项,因此显式修剪缓冲区可以释放一些处理步骤所需的内存。由于我需要处理大量数据,因此我打算在已经分配的缓冲区中执行此操作。
CUDA是否有一种机制允许修剪和释放cudaMalloc()
缓冲区的结尾?
答案 0 :(得分:1)
你要问的是等同于" realloc"函数,运行时或驱动程序API中都不存在此类功能。
另请注意,cudaMalloc
和cudaFree
可能do not work the way you might imagine,释放内存not necessarily change the amount of available free memory on the device。