sdk中关于异步执行有以下一段代码
cudaMemcpyAsync(d_a,a,nbytes,cudaMemcpyHostToDevice,0);
increment_kernel<<<blocks,threads,0,0>>>(d_a,value);
cudaMemcpyAsync(a,d_a,nbytes,cudaMencpyDeviceToHost,0)
就是用异步的方法复制一段主机数据到gpu上
用kernel对这段数据操作
再用异步的方法复制回主机
但是如果是异步执行的话会不会造成kernel上使用的数据是还没有跟新的数据呢?
就像我们在kernel中数据赋值和数据操作要加cudathreadsynchronize一样
为什么这里不用呢?