Существуют ли различия между w.r.t cudaMalloc(...)
и cudaMemCpy(...)
между следующими двумя подходами:
#1. Use dynamic host arrays:
float *a_host_1 = new float [10]();
float *a_dyn;
...
cudaMalloc((void **) &a_dyn, 10);
...
for (int i=0; i<10; i++) a_host_1[i] = (float)i*2;
cudaMemcpy(a_dyn, a_host_1, 10, cudaMemcpyHostToDevice);
#2. Use static host arrays:
float a_host_2[] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
float *a_st;
...
cudaMalloc((void **) &a_st, 10);
...
cudaMemcpy(a_st, a_host_2, 10, cudaMemcpyHostToDevice);
С уважением,
Саян