Merge pull request #11155 from nglee:dev_docGpuMatDownloadUpload

pull/11162/head
Alexander Alekhin 7 years ago
commit 70607ce311
  1. 39
      modules/core/include/opencv2/core/cuda.hpp

@ -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 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. 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 @sa Mat
*/ */
class CV_EXPORTS GpuMat class CV_EXPORTS GpuMat
@ -151,16 +160,38 @@ public:
//! swaps with other smart pointer //! swaps with other smart pointer
void swap(GpuMat& mat); 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); 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); 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; 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; void download(OutputArray dst, Stream& stream) const;
//! returns deep copy of the GpuMat, i.e. the data is copied //! returns deep copy of the GpuMat, i.e. the data is copied

Loading…
Cancel
Save