message: set stream at the site of creation
diff: @@ -1277,6 +1277,13 @@ struct Net::Impl
  }
  Ptr<BackendWrapper> wrapper = wrapMat(preferableBackend, preferableTarget, host);
  +#ifdef HAVE_CUDA
  + if (preferableBackend == DNN_BACKEND_CUDA)
  + {
  + auto cudaWrapper = wrapper.dynamicCast<CUDABackendWrapper>();
  + cudaWrapper->setStream(cudaInfo->context.stream);
  + }
  +#endif
  backendWrappers[data] = wrapper;
  return wrapper;
  }
  @@ -2414,16 +2421,7 @@ struct Net::Impl
  ninputs = netInputLayer->inputsData.size();
  ld.inputBlobsWrappers.resize(ninputs);
  for (size_t i = 0; i < ninputs; i++)
  - {
  ld.inputBlobsWrappers[i] = wrap(netInputLayer->inputsData[i]);
  -#ifdef HAVE_CUDA
  - if (IS_DNN_CUDA_TARGET(preferableTarget))
  - {
  - auto wrapper = ld.inputBlobsWrappers[i].dynamicCast<CUDABackendWrapper>();
  - wrapper->setStream(cudaInfo->context.stream);
  - }
  -#endif
  - }
  }
  else
  {
  @@ -2449,23 +2447,12 @@ struct Net::Impl
  preferableTarget == DNN_TARGET_OPENCL_FP16);
  ld.outputBlobsWrappers.resize(ld.outputBlobs.size());
  for (int i = 0; i < ld.outputBlobs.size(); ++i)
  - {
  ld.outputBlobsWrappers[i] = wrap(ld.outputBlobs[i]);
  -#ifdef HAVE_CUDA
  - if (IS_DNN_CUDA_TARGET(preferableTarget))
  - {
  - auto wrapper = ld.outputBlobsWrappers[i].dynamicCast<CUDABackendWrapper>();
  - wrapper->setStream(cudaInfo->context.stream);
  - }
  -#endif
  - }
  /* CUDA backend has its own system for internal blobs; we don't need these */
  ld.internalBlobsWrappers.resize((preferableBackend == DNN_BACKEND_CUDA) ? 0 : ld.internals.size());
  for (int i = 0; i < ld.internalBlobsWrappers.size(); ++i)
  - {
  ld.internalBlobsWrappers[i] = wrap(ld.internals[i]);
  - }
  Ptr<Layer> layerPtr = ld.getLayerInstance();
  {
  