Function rcudnn_sys::cudaMemcpy2DAsync[][src]

pub unsafe extern "C" fn cudaMemcpy2DAsync(
    dst: *mut c_void,
    dpitch: usize,
    src: *const c_void,
    spitch: usize,
    width: usize,
    height: usize,
    kind: cudaMemcpyKind,
    stream: cudaStream_t
) -> cudaError_t
Expand description

\brief Copies data between host and device

Copies a matrix (\p height rows of \p width bytes each) from the memory area pointed to by \p src to the memory area pointed to by \p dst, where \p kind specifies the direction of the copy, and must be one of ::cudaMemcpyHostToHost, ::cudaMemcpyHostToDevice, ::cudaMemcpyDeviceToHost, ::cudaMemcpyDeviceToDevice, or ::cudaMemcpyDefault. Passing ::cudaMemcpyDefault is recommended, in which case the type of transfer is inferred from the pointer values. However, ::cudaMemcpyDefault is only allowed on systems that support unified virtual addressing. \p dpitch and \p spitch are the widths in memory in bytes of the 2D arrays pointed to by \p dst and \p src, including any padding added to the end of each row. The memory areas may not overlap. \p width must not exceed either \p dpitch or \p spitch.

Calling ::cudaMemcpy2DAsync() with \p dst and \p src pointers that do not match the direction of the copy results in an undefined behavior. ::cudaMemcpy2DAsync() returns an error if \p dpitch or \p spitch is greater than the maximum allowed.

::cudaMemcpy2DAsync() is asynchronous with respect to the host, so the call may return before the copy is complete. The copy can optionally be associated to a stream by passing a non-zero \p stream argument. If \p kind is ::cudaMemcpyHostToDevice or ::cudaMemcpyDeviceToHost and \p stream is non-zero, the copy may overlap with operations in other streams.

The device version of this function only handles device to device copies and cannot be given local or shared pointers.

\param dst - Destination memory address \param dpitch - Pitch of destination memory \param src - Source memory address \param spitch - Pitch of source memory \param width - Width of matrix transfer (columns in bytes) \param height - Height of matrix transfer (rows) \param kind - Type of transfer \param stream - Stream identifier

\return ::cudaSuccess, ::cudaErrorInvalidValue, ::cudaErrorInvalidPitchValue, ::cudaErrorInvalidMemcpyDirection \notefnerr \note_async \note_null_stream \note_init_rt \note_callback \note_memcpy

\sa ::cudaMemcpy, ::cudaMemcpy2D, ::cudaMemcpy2DToArray, ::cudaMemcpy2DFromArray, ::cudaMemcpy2DArrayToArray, ::cudaMemcpyToSymbol, ::cudaMemcpyFromSymbol, ::cudaMemcpyAsync, ::cudaMemcpy2DToArrayAsync, ::cudaMemcpy2DFromArrayAsync, ::cudaMemcpyToSymbolAsync, ::cudaMemcpyFromSymbolAsync, ::cuMemcpy2DAsync