我在GPU上分配数据块。而且我有一种算法可以生成新数据来代替旧数据。新缓冲区具有相同的数据大小。一种解决方案是将旧数据送回CPU,然后将其擦除,但是我认为这效率很低而且非常慢。是否可以在同一位置用新数据覆盖旧元素?
如果内核接受指向某个缓冲区的指针,则可以将原始数据指针传递给该内核,从而导致输入数据被内核结果覆盖。
或者,如果您正在使用需要使用缓冲区的算法,则可以使用cudaMemcpy将缓冲区中存储的结果复制到保存输入数据的内存区域,并在此过程中将其覆盖。
cudaMemcpy