HIP virtual memory management API#
- 
hipError_t hipMemAddressFree(void *devPtr, size_t size)#
- Frees an address range reservation made via hipMemAddressReserve. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- devPtr – [in] - starting address of the range. 
- size – [in] - size of the range. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemAddressReserve(void **ptr, size_t size, size_t alignment, void *addr, unsigned long long flags)#
- Reserves an address range. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- ptr – [out] - starting address of the reserved range. 
- size – [in] - size of the reservation. 
- alignment – [in] - alignment of the address. 
- addr – [in] - requested starting address of the range. 
- flags – [in] - currently unused, must be zero. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemCreate(hipMemGenericAllocationHandle_t *handle, size_t size, const hipMemAllocationProp *prop, unsigned long long flags)#
- Creates a memory allocation described by the properties and size. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- handle – [out] - value of the returned handle. 
- size – [in] - size of the allocation. 
- prop – [in] - properties of the allocation. 
- flags – [in] - currently unused, must be zero. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- Exports an allocation to a requested shareable handle type. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- shareableHandle – [out] - value of the returned handle. 
- handle – [in] - handle to share. 
- handleType – [in] - type of the shareable handle. 
- flags – [in] - currently unused, must be zero. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemGetAccess(unsigned long long *flags, const hipMemLocation *location, void *ptr)#
- Get the access flags set for the given location and ptr. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- flags – [out] - flags for this location. 
- location – [in] - target location. 
- ptr – [in] - address to check the access flags. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemGetAllocationGranularity(size_t *granularity, const hipMemAllocationProp *prop, hipMemAllocationGranularity_flags option)#
- Calculates either the minimal or recommended granularity. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- granularity – [out] - returned granularity. 
- prop – [in] - location properties. 
- option – [in] - determines which granularity to return. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemGetAllocationPropertiesFromHandle(hipMemAllocationProp *prop, hipMemGenericAllocationHandle_t handle)#
- Retrieve the property structure of the given handle. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- prop – [out] - properties of the given handle. 
- handle – [in] - handle to perform the query on. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- Imports an allocation from a requested shareable handle type. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- handle – [out] - returned value. 
- osHandle – [in] - shareable handle representing the memory allocation. 
- shHandleType – [in] - handle type. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemMap(void *ptr, size_t size, size_t offset, hipMemGenericAllocationHandle_t handle, unsigned long long flags)#
- Maps an allocation handle to a reserved virtual address range. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- ptr – [in] - address where the memory will be mapped. 
- size – [in] - size of the mapping. 
- offset – [in] - offset into the memory, currently must be zero. 
- handle – [in] - memory allocation to be mapped. 
- flags – [in] - currently unused, must be zero. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemMapArrayAsync(hipArrayMapInfo *mapInfoList, unsigned int count, hipStream_t stream)#
- Maps or unmaps subregions of sparse HIP arrays and sparse HIP mipmapped arrays. - Warning - This API is under development. Currently it is not supported on AMD GPUs and returns hipErrorNotSupported. - Parameters:
- mapInfoList – [in] - list of hipArrayMapInfo. 
- count – [in] - number of hipArrayMapInfo in mapInfoList. 
- stream – [in] - stream identifier for the stream to use for map or unmap operations. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemRelease(hipMemGenericAllocationHandle_t handle)#
- Release a memory handle representing a memory allocation which was previously allocated through hipMemCreate. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- handle – [in] - handle of the memory allocation. 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemRetainAllocationHandle(hipMemGenericAllocationHandle_t *handle, void *addr)#
- Returns the allocation handle of the backing memory allocation given the address. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- handle – [out] - handle representing addr. 
- addr – [in] - address to look up. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemSetAccess(void *ptr, size_t size, const hipMemAccessDesc *desc, size_t count)#
- Set the access flags for each location specified in desc for the given virtual address range. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- ptr – [in] - starting address of the virtual address range. 
- size – [in] - size of the range. 
- desc – [in] - array of hipMemAccessDesc. 
- count – [in] - number of hipMemAccessDesc in desc. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported 
 
- 
hipError_t hipMemUnmap(void *ptr, size_t size)#
- Unmap memory allocation of a given address range. - Note - This API is implemented on Linux and is under development on Microsoft Windows. - Warning - This API is marked as Beta. While this feature is complete, it can change and might have outstanding issues. - Parameters:
- ptr – [in] - starting address of the range to unmap. 
- size – [in] - size of the virtual address range. 
 
- Returns:
- hipSuccess, hipErrorInvalidValue, hipErrorNotSupported