Мне нужно динамически выделять некоторые массивы внутри функции ядра. Как я могу это сделать?
Мой код выглядит примерно так:
__global__ func(float *grid_d,int n, int nn){
int i,j;
float x[n],y[nn];
//Do some really cool and heavy computations here that takes hours.
}
Но это не сработает. Если это было внутри кода хоста, я мог бы использовать malloc. cudaMalloc требуется указатель на хост, а другой - на устройство. Внутри функции ядра у меня нет указателя на хост.
Итак, что мне делать?
Если требуется слишком много времени (несколько секунд), чтобы выделить все массивы (мне нужно около 4 размера n и 5 размера nn), это не будет проблемой. Так как ядро, вероятно, будет работать в течение 20 минут, по крайней мере.