aclrtMemcpyAsyncWithCondition

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

Description

Copies memory.

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

1
aclError aclrtMemcpyAsyncWithCondition(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind, aclrtStream stream)

Parameters

Parameter

Input/Output

Description

dst

Input

Pointer to the destination memory address.

destMax

Input

Memory size in bytes in the destination address

src

Input

Pointer to the source memory address.

count

Input

Size in bytes to copy

kind

Input

Memory copy kind. For details about the type definition, see aclrtMemcpyKind.

stream

Input

Stream for executing the memory copy task. For details about the type definition, see aclrtStream.

Returns

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

Restrictions

  • Ascend EP: This API does not support asynchronous memory copy within the host. If the input kind is ACL_MEMCPY_HOST_TO_HOST, the API returns the error message "ACL_ERROR_RT_FEATURE_NOT_SUPPORT".
  • Ascend RC: If the value of kind passed by this API is ACL_MEMCPY_HOST_TO_DEVICE, ACL_MEMCPY_DEVICE_TO_HOST, or ACL_MEMCPY_HOST_TO_HOST when the application is running on the board, the system uses ACL_MEMCPY_DEVICE_TO_DEVICE by default to copy memory on the device.
  • Ctrl CPU open form: If the value of kind passed by this API is ACL_MEMCPY_HOST_TO_DEVICE, ACL_MEMCPY_DEVICE_TO_HOST, or ACL_MEMCPY_HOST_TO_HOST when the application is running on the device, the system uses ACL_MEMCPY_DEVICE_TO_DEVICE by default to copy memory on the device.