Function: memcpy2d_async
Applicable Products
Product |
Supported (√/x) |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
Description
Implements asynchronous memory copy, which is mainly used for matrix data replication. This is an asynchronous API.
The
Prototype
- C Prototype
1aclError aclrtMemcpy2dAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, aclrtMemcpyKind kind, aclrtStream stream)
- Python Function
1ret = acl.rt.memcpy2d_async(dst, dpitch, src, spitch, width, height, kind, stream)
Parameters
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. It must be less than or equal to dpitch and spitch. The maximum value of width is 5000000. |
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 Values
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.
- This API supports only the ACL_MEMCPY_HOST_TO_DEVICE, ACL_MEMCPY_DEVICE_TO_HOST, and ACL_MEMCPY_DEVICE_TO_DEVICE memory copy kinds. Different models support different memory copy kinds. For unsupported memory copy kinds, the API returns ACL_ERROR_INVALID_PARAM.
- The following models support the ACL_MEMCPY_HOST_TO_DEVICE and ACL_MEMCPY_DEVICE_TO_HOST memory copy kinds:
Ascend 950PR /Ascend 950DT 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 - The following models support the ACL_MEMCPY_DEVICE_TO_DEVICE memory copy kind:
Ascend 950PR /Ascend 950DT Atlas A3 training products /Atlas A3 inference products Atlas A2 training products /Atlas A2 inference products
- The following models support the ACL_MEMCPY_HOST_TO_DEVICE and ACL_MEMCPY_DEVICE_TO_HOST memory copy kinds:
Atlas inference products in Open Ctrl CPU form: This API is not supported.Atlas inference accelerator module : This API is not supported.Atlas 200I/500 A2 inference products in Ascend RC form: This API is not supported.