cudaMemcpyAsync Device to Host : Need to synchronize before using data on host

Hi,

Lets say I have the following

for( i = 0; i < N ; i++ )
{
checkCudaErrors(cudaMemcpyAsync(host[i], device[i], size_bytes,cudaMemcpyDeviceToHost, stream[i] )
}

// using host data after this point

Do I need to synchronize ( using cuda events or device synchronize or stream synchronize etc) to make sure the host data is available before using it ?

yes

Thanks txbob