Function: memcpy2d_async

Applicability

Product

Supported (√/x)

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas training products

Atlas inference products

Atlas 200I/500 A2 inference products

Function Usage

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

The Atlas inference accelerator modules does not support these APIs.

Prototype

  • C Prototype
    1
    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
    1
    ret = acl.rt.memcpy2d_async(dst, dpitch, src, spitch, width, height, kind, stream)
    

Parameter Description

Parameter

Description

dst

Int, pointer address of the destination memory address.

dpitch

Int, address distance between two adjacent columns of vectors in the destination memory.

src

Int, pointer address of the source memory address.

spitch

Int, address distance between two adjacent columns of vectors in the source memory.

width

Int, matrix width to be copied.

height

Int, matrix height to be copied.

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

kind

Int, memory copy type.

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.
ACL_MEMCPY_DEFAULT = 4 // The system determines the copy direction based on the source and destination memory addresses.

stream

Int, pointer address of the stream.

Return Value Description

Return Value

Description

ret

Int, error code: 0 on success; else, failure.

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 200I/500 A2 inference products: This API is not supported in Ascend RC form.