CUDA:在内核中使用realloc
我知道可以在内核中使用CUDA:在内核中使用realloc,cuda,Cuda,我知道可以在内核中使用malloc在GPU的全局内存上分配内存。是否也可以使用Cuda编程指南中的realloc?在介绍malloc和free功能时,没有提到realloc。我假设它不存在 如果您想确切了解它,为什么不编写一个简单的内核并尝试使用它呢?您可以为您的数据类型编写自己的realloc设备函数 只需为一个新数组分配新空间,将旧值复制到新数组,释放旧数组空间,返回新数组并提供更多空间 大致类似于以下代码片段: __device__ MY_TYPE* myrealloc(int oldsi
malloc
在GPU的全局内存上分配内存。是否也可以使用Cuda编程指南中的realloc
?在介绍malloc
和free
功能时,没有提到realloc
。我假设它不存在
如果您想确切了解它,为什么不编写一个简单的内核并尝试使用它呢?您可以为您的数据类型编写自己的realloc设备函数 只需为一个新数组分配新空间,将旧值复制到新数组,释放旧数组空间,返回新数组并提供更多空间 大致类似于以下代码片段:
__device__ MY_TYPE* myrealloc(int oldsize, int newsize, MY_TYPE* old)
{
MY_TYPE* newT = (MY_TYPE*) malloc (newsize*sizeof(MY_TYPE));
int i;
for(i=0; i<oldsize; i++)
{
newT[i] = old[i];
}
free(old);
return newT;
}
\uuuuuu设备\uuuuuu类型*myrealloc(int-oldsize、int-newsize、MY-uu类型*old)
{
myu-TYPE*newT=(myu-TYPE*)malloc(newsize*sizeof(myu-TYPE));
int i;
对于(i=0;i您从何处获得这些信息?假设内核中没有内存管理。您必须预先准备好所有内容。3.2编程指南支持malloc和free。另外,new
和delete
从4.0开始如果newsize