我試圖利用常量內存,但我很難搞清楚如何嵌套數組。我擁有的是一系列數據,這些數據可以用於內部數據,但每個條目的數據都不相同。所以基於以下簡化代碼,我有兩個問題。首先,我不知道如何分配數據結構成員指向的數據。其次,由於我不能將cudaGetSymbolAddress用於常量內存,我不確定是否可以傳遞全局指針(無法用普通的__device__內存)。CUDA中的常量內存動態分配
struct __align(16)__ data{
int nFiles;
int nNames;
int* files;
int* names;
};
__device__ __constant__ data *mydata;
__host__ void initMemory(...)
{
cudaMalloc((void **) &(mydata), sizeof(data)*dynamicsize);
for(int i=; i lessthan dynamicsize; i++)
{
cudaMemcpyToSymbol(mydata, &(nFiles[i]), sizeof(int), sizeof(data)*i, cudaMemcpyHostToDevice);
//...
//Problem 1: Allocate & Set mydata[i].files
}
}
__global__ void myKernel(data *constDataPtr)
{
//Problem 2: Access constDataPtr[n].files, etc
}
int main()
{
//...
myKernel grid, threads (mydata);
}
感謝您提供的任何幫助。 :-)