aclrtReserveMemAddress
Applicability
Product |
Supported |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
Description
Reserves virtual memory.
- Call aclrtReserveMemAddress to allocate virtual memory.
- Call aclrtMallocPhysical to allocate physical memory.
- Call aclrtMapMem to map the virtual memory to the physical memory.
- Call specific task APIs to execute tasks.
- Call aclrtUnmapMem to unmap the virtual memory from the physical memory.
- Call aclrtFreePhysical to free the physical memory.
- Call aclrtReleaseMemAddress to free the virtual memory.
Prototype
aclError aclrtReserveMemAddress(void **virPtr, size_t size, size_t alignment, void *expectPtr, uint64_t flags)
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
virPtr |
Output |
Pointer to "pointer to the allocated virtual memory address". |
size |
Input |
Virtual memory size, in bytes. Must not be 0. |
alignment |
Input |
Alignment value of the virtual address. This parameter is reserved and can only be set to 0. |
expectPtr |
Input |
Start address of the virtual memory to be returned. The options are as follows:
|
flags |
Input |
Huge page or common page flag. The flag must be the same as the memory type of aclrtMallocPhysical. Values:
|
Returns
0 on success; else, failure. For details, see aclError.
Restrictions
- This API is not supported in the Ascend RC form of the
Atlas 200I/500 A2 inference products .
- To use the virtual memory reserved by this API, only aclrtMemcpyAsync can be called to copy data between two devices in the single-process scenario.