__device__ int data;
__constant__ int var1;
如何释放"数据"和" var1"在CUDA?
谢谢
答案 0 :(得分:2)
你不能释放它。程序结束时会自动释放它。
同样,在主机代码中,您不会释放全局变量。
答案 1 :(得分:2)
正如@ CygnusX1所说,你无法释放它。正如您所声明的那样,内存将在程序的生命周期内分配 - 注意:即使您从未调用内核。
然而,您可以使用cudaMalloc和cudaFree(或CUDA 4.0中的new / delete)来临时分配和释放内存。当然你必须使用指针来操作所有东西,但是如果你需要存储几个大对象,释放它们,然后存储几个更大的对象,这是一个巨大的节省......
答案 2 :(得分:2)
使用sm_20及更高版本的设备计算功能,您只需使用new或delete关键字, 更好的是使用CUDA推力API(它是GPU上的标准模板库的实现)非常酷的东西。