ariável global em CUDA

Como posso criar variáveis globais em CUDA ?? Você poderia me dar um exemplo?

Como criar matrizes dentro de uma função CUDA, por exemplo

__global__ void test()
{
  int *a = new int[10];
}

omo criar uma matriz global e acessá-la a partir desta função. por exempl

__device__ int *a;
__global__ void test()
{
  a[0] = 2;
}

Or Como posso usar como o seguinte ..

__global__ void ProcessData(int img)
{
   int *neighborhood = new int[8]; 
   getNeighbourhood(img, neighbourhood);
}

Ainda tenho algum problema com isso. Eu achei que comparar com

__device__

se eu definir

"__device__ __constant__" (read only)

melhorará o acesso à memória. Mas meu problema é que tenho uma matriz na memória do host, digamos

 float *arr = new float[sizeOfTheArray]; 

Quero torná-lo como uma matriz variável no dispositivo e preciso modificá-lo na memória do dispositivo e copiá-lo novamente para o host. Como eu posso fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion