message: Update GpuMat, GpuMat::download, GpuMat::upload documentation
diff: @@ -91,6 +91,15 @@ aligned to a size depending on the hardware. Single-row GpuMat is always a conti
  on its destructor. The destruction order of such variables and CUDA context is undefined. GPU memory
  release function returns error if the CUDA context has been destroyed before.
  +Some member functions are described as a "Blocking Call" while some are described as a
  +"Non-Blocking Call". Blocking functions are synchronous to host. It is guaranteed that the GPU
  +operation is finished when the function returns. However, non-blocking functions are asynchronous to
  +host. Those functions may return even if the GPU operation is not finished.
  +
  +Compared to their blocking counterpart, non-blocking functions accept Stream as an additional
  +argument. If a non-default stream is passed, the GPU operation may overlap with operations in other
  +streams.
  +
  @sa Mat
  */
  class CV_EXPORTS GpuMat
  @@ -151,16 +160,38 @@ public:
  //! swaps with other smart pointer
  void swap(GpuMat& mat);
  - //! pefroms upload data to GpuMat (Blocking call)
  + /** @brief Performs data upload to GpuMat (Blocking call)
  +
  + This function copies data from host memory to device memory. As being a blocking call, it is
  + guaranteed that the copy operation is finished when this function returns.
  + */
  void upload(InputArray arr);
  - //! pefroms upload data to GpuMat (Non-Blocking call)
  + /** @brief Performs data upload to GpuMat (Non-Blocking call)
  +
  + This function copies data from host memory to device memory. As being a non-blocking call, this
  + function may return even if the copy operation is not finished.
  +
  + The copy operation may be overlapped with operations in other non-default streams if \p stream is
  + not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option.
  + */
  void upload(InputArray arr, Stream& stream);
  - //! pefroms download data from device to host memory (Blocking call)
  + /** @brief Performs data download from GpuMat (Blocking call)
  +
  + This function copies data from device memory to host memory. As being a blocking call, it is
  + guaranteed that the copy operation is finished when this function returns.
  + */
  void download(OutputArray dst) const;
  - //! pefroms download data from device to host memory (Non-Blocking call)
  + /** @brief Performs data download from GpuMat (Non-Blocking call)
  +
  + This function copies data from device memory to host memory. As being a non-blocking call, this
  + function may return even if the copy operation is not finished.
  +
  + The copy operation may be overlapped with operations in other non-default streams if \p stream is
  + not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option.
  + */
  void download(OutputArray dst, Stream& stream) const;
  //! returns deep copy of the GpuMat, i.e. the data is copied
  