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