我是否需要释放由推力返回的device_ptr?

时间:2015-05-27 18:44:27

标签: c++ pointers cuda thrust

我有一个函数来获取数组的最小值,并在循环中执行。

thrust::device_ptr<float> min_ptr = thrust::min_element(populationFitness, populationFitness + POPULATION);

我是否必须释放返回的device_ptr?我尝试使用thrust::device_free(min_ptr),但抛出异常。

2 个答案:

答案 0 :(得分:1)

thrust::min_element返回一个迭代器。你不应该直接释放它。

答案 1 :(得分:0)

我认为你不需要释放 thrust :: min_element

返回的内存

查看How to do the BATCH insert in JPA?

中给出的示例代码
#include <thrust/extrema.h>
...
int data[6] = {1, 0, 2, 2, 1, 3};
int *result = thrust::max_element(data, data + 6);

似乎它返回一个指向数组元素的指针,你不需要删除它。