aclrtMemcpy2dAsync

Applicability

Product

Supported

Atlas A3 training products / Atlas A3 inference products

Atlas A2 training products / Atlas A2 inference products

Atlas 200I/500 A2 inference products

Atlas inference products

Atlas training products

Description

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

The host memory in this API can be page-locked memory (for example, the memory allocated by the aclrtMallocHost API) or non-page-locked memory (allocated by the malloc API). If the host memory is non-page-locked memory, this API returns only after the memory copy task is complete. If the host memory is page-locked memory, this API is asynchronous. A successful API call only indicates that the task is delivered, not executed. After this API is called, call the synchronization API (for example, aclrtSynchronizeStream) to ensure that the memory copy task is complete.

Prototype

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

Parameters

Parameter

Input/Output

Description

dst

Input

Pointer to the destination memory address.

dpitch

Input

Address distance between two adjacent columns of vectors in the destination memory.

src

Input

Pointer to the source memory address.

spitch

Input

Address distance between two adjacent columns of vectors in the source memory.

width

Input

Width of the data to be copied.

height

Input

Height of the data to be copied.

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

kind

Input

Memory copy kind.

stream

Input

Stream for executing the memory copy task.

Returns

0 on success; else, failure. For details, see aclError.

Restrictions

  • This API supports only the ACL_MEMCPY_HOST_TO_DEVICE and ACL_MEMCPY_DEVICE_TO_HOST memory copy types.
  • The Ascend RC form of Atlas 200I/500 A2 inference products does not support this API.
  • The Atlas inference accelerator modules does not support this API.

See Also

The following figure shows the memory copy of this API.