[問題] CUDA中memory的使用方式?
有問題的code:
#define SIZE 1000
...
{
...
int tmp = 10;
float data[SIZE];
for (int i = 0; i < SIZE; i++)
data[i] = 1;
float *device;
cudaMalloc((void**)&device, sizeof(float)*SIZE);
cudaMemcpy(device, data, sizeof(float)*SIZE, cudaMemcpyHostToDevice);
...
gpufun<<<block, thread>>> (device, tmp);
}
__global__ void gpufun(float *a_device, int a_tmp)
{
...
}
常常會遇到上述這樣的程式
其中,會將data 從host memory中copy到device memory
然後透過pointer device來access memory
我想請問,那tmp這個data呢?
既沒有在device中malloc空間來存放tmp
也沒有利用memcpy將tmp儲存到device,為什麼呢?
另外,GPU在使用a_tmp時,這份data到底是存放在哪塊memory上呢?
感謝~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.178.189
→
05/08 03:57, , 1F
05/08 03:57, 1F
→
05/08 04:00, , 2F
05/08 04:00, 2F
→
05/08 04:02, , 3F
05/08 04:02, 3F
推
05/08 04:25, , 4F
05/08 04:25, 4F
→
05/08 04:25, , 5F
05/08 04:25, 5F
推
05/08 11:10, , 6F
05/08 11:10, 6F
推
05/09 00:36, , 7F
05/09 00:36, 7F