【发布时间】:2014-05-09 04:41:16
【问题描述】:
我正在使用cub::DeviceScan 函数,而sample code snippet 有一个参数temp_storage_bytes,它用于分配内存(顺便提一下,代码 sn-p 永远不会释放)。
代码 sn-p 使用指向 NULL 内存的指针调用 cub::DeviceScan 函数,这会触发它计算函数所需的临时设备内存量,然后返回。必要的临时内存用cudaMalloc分配,函数调用重复指向这块内存。然后使用cudaFree(或者可能应该)释放临时内存。
我正在对不同的浮点数组进行多次设备扫描,但每个浮点数组的长度相同。
我的问题是,我可以假设temp_storage_bytes 总是相同的值吗?如果是这样,我可以为许多函数调用执行一个 cudaMalloc 和一个 cudaFree。
该示例不清楚如何确定所需的内存以及它是否可以针对给定长度的给定数组进行更改。
【问题讨论】:
-
我会说是的。否则这意味着
temp_storage_bytes依赖于数组元素值?