Function: memcpy_async
Applicability
Product |
Supported |
|---|---|
Atlas 350 Accelerator Card |
√ |
√ |
|
√ |
|
√ |
|
√ |
|
√ |
Description
Copies memory. This API is asynchronous.
The host memory in this API supports lock page memory (for example, the memory allocated by using the acl.rt.malloc_host API) and non-lock page memory (for example, the memory allocated by using the malloc API). If the host memory is not a lock page memory, this API is returned only after the memory copy task is complete. When the host memory is the lock page memory, this API is an asynchronous API. If the API is successfully called, the task is successfully delivered but not executed. After this API is called, the synchronous waiting API (for example, acl.rt.synchronize_stream) needs to be called to ensure that the memory replication task is complete.
Prototype
- C Prototype
1aclError aclrtMemcpyAsync(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind, aclrtStream stream)
- Python Function
1ret = acl.rt.memcpy_async(dst, dest_max, src, count, kind, stream)
Parameters
Parameter |
Description |
|---|---|
dst |
Int, pointer address of the destination memory address. |
dest_max |
Int, memory size in bytes in the destination address |
src |
Int, pointer address of the source memory address. |
count |
Int, size in bytes to copy. |
kind |
Int, memory copy type.
|
stream |
Int, stream ID. |
Return Value
Return Value |
Description |
|---|---|
ret |
Int, error code. 0 on success; else, failure. |
Restrictions
- The source address and destination address passed to this call must be 64-byte aligned.
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 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: When the application is running on the board, if the input kind is ACL_MEMCPY_HOST_TO_DEVICE, ACL_MEMCPY_DEVICE_TO_HOST, or ACL_MEMCPY_HOST_TO_HOST, the system uses ACL_MEMCPY_DEVICE_TO_DEVICE by default to copy memory within the device.
- 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".