When using texture memory in CUDA, we call cudaBindTextureToArray(texRef, cuArray, channelDesc)
, use the texture, and then unbind it:
cudaUnbindTexture(texRef);
With surface memory, there is an analogous cudaBindSurfaceToArray(surfRef, cuArray);
but in the Documentation I have not found any mention of unbinding the surface, and my guess cudaUnbindSurface(surfRef);
throws an error. Is surface reference unbinding not necessary/impossible and why is this different from texture reference?