Function: memcpy2d_async

C Prototype

aclError aclrtMemcpy2dAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, aclrtMemcpyKind kind, aclrtStream stream)

Python Function

ret = acl.rt.memcpy2d_async(dst, dpitch, src, spitch, width, height, kind, stream)

Function Usage

Implements asynchronous memory copy, which is mainly used for matrix data replication. This API is asynchronous.

Input Description

dst: pointer address of the destination memory address.

dpitch: address distance between two adjacent columns of vectors in the destination memory.

src: pointer address of the source memory address.

spitch: address distance between two adjacent columns of vectors in the source memory.

width: width of the matrix to be copied.

height: height of the matrix to be copied.

The maximum height can be set to 5242880 (5 x 1024 x 1024). Otherwise, a failure is returned.

kind: memory copy kind.

ACL_MEMCPY_HOST_TO_HOST = 0 // Copy memory within the host.
ACL_MEMCPY_HOST_TO_DEVICE = 1 // Copy memory from the host to the device.
ACL_MEMCPY_DEVICE_TO_HOST = 2 // Copy memory from the device to the host.
ACL_MEMCPY_DEVICE_TO_DEVICE = 3 // Copy memory within a device.

stream: pointer address of the stream.

Return Value

ret: int, error code.

Restrictions

  • This API is asynchronous. The API call delivers a task rather than executes a task. After calling this API, you need to call a synchronization API, such as acl.rt.synchronize_stream, to ensure that the memory copy task is complete.
  • Currently, only memory copy of the ACL_MEMCPY_HOST_TO_DEVICE and ACL_MEMCPY_DEVICE_TO_HOST types is supported.
  • For the Atlas 200/300/500 Inference Product: This API is not supported in Ascend RC form.