Memory manager related functions. More...
Functions | |
AFAPI void | setMemStepSize (const size_t size) |
Set the resolution of memory chunks. More... | |
AFAPI size_t | getMemStepSize () |
Get the resolution of memory chunks. More... | |
AFAPI af_err | af_device_mem_info (size_t *alloc_bytes, size_t *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers) |
Get memory information from the memory manager. More... | |
AFAPI af_err | af_print_mem_info (const char *msg, const int device_id) |
Prints buffer details from the ArrayFire Device Manager. More... | |
AFAPI af_err | af_device_gc () |
Call the garbage collection routine. More... | |
AFAPI af_err | af_set_mem_step_size (const size_t step_bytes) |
Set the minimum memory chunk size. More... | |
AFAPI af_err | af_get_mem_step_size (size_t *step_bytes) |
Get the minimum memory chunk size. More... | |
AFAPI af_err | af_lock_device_ptr (const af_array arr) |
Lock the device buffer in the memory manager. More... | |
AFAPI af_err | af_unlock_device_ptr (const af_array arr) |
Unlock device buffer in the memory manager. More... | |
AFAPI af_err | af_lock_array (const af_array arr) |
Lock the device buffer in the memory manager. More... | |
AFAPI af_err | af_unlock_array (const af_array arr) |
Unlock device buffer in the memory manager. More... | |
AFAPI af_err | af_is_locked_array (bool *res, const af_array arr) |
Query if the array has been locked by the user. More... | |
AFAPI af_err | af_get_device_ptr (void **ptr, const af_array arr) |
Get the device pointer and lock the buffer in memory manager. More... | |
AFAPI af_err | af_set_kernel_cache_directory (const char *path, int override_env) |
Sets the path where the kernels generated at runtime will be cached. More... | |
AFAPI af_err | af_get_kernel_cache_directory (size_t *length, char *path) |
Gets the path where the kernels generated at runtime will be cached. More... | |
AFAPI void | deviceMemInfo (size_t *alloc_bytes, size_t *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers) |
Gets information about the memory manager. More... | |
AFAPI void | printMemInfo (const char *msg=NULL, const int device_id=-1) |
Prints buffer details from the ArrayFire Device Manager. More... | |
AFAPI void | deviceGC () |
Call the garbage collection function in the memory manager. More... | |
Memory manager related functions.
Memory manager related functions
AFAPI af_err af_device_mem_info | ( | size_t * | alloc_bytes, |
size_t * | alloc_buffers, | ||
size_t * | lock_bytes, | ||
size_t * | lock_buffers | ||
) |
Get memory information from the memory manager.
Get the device pointer and lock the buffer in memory manager.
The device pointer ptr
is notfreed by memory manager until af_unlock_device_ptr is called.
Gets the path where the kernels generated at runtime will be cached.
Gets the path where the kernels generated at runtime will be stored to cache for later use. The files in this directory can be safely deleted. The default location for these kernels is in $HOME/.arrayfire on Unix systems and in the ArrayFire temp directory on Windows.
[out] | length | The length of the path array. If path is NULL, the length of the current path is assigned to this pointer |
[out] | path | The path of the runtime generated kernel cache variable. If NULL, the current path length is assigned to length |
length
not sufficient enought to store the path Get the minimum memory chunk size.
Works only with the default memory manager - returns an error if a custom memory manager is set.
Query if the array has been locked by the user.
An array can be locked by the user by calling af_lock_array
or af_get_device_ptr
or af_get_raw_ptr
function.
Lock the device buffer in the memory manager.
Locked buffers are not freed by memory manager until af_unlock_array is called.
Lock the device buffer in the memory manager.
Locked buffers are not freed by memory manager until af_unlock_array is called.
Prints buffer details from the ArrayFire Device Manager.
The result is a table with several columns:
POINTER: The hex address of the array's device or pinned-memory pointer SIZE: Human-readable size of the array AF LOCK: Indicates whether ArrayFire is using this chunk of memory. If not, the chunk is ready for reuse. USER LOCK: If set, ArrayFire is prevented from freeing this memory. The chunk is not ready for re-use even if all ArrayFire's references to it go out of scope.
[in] | msg | A message to print before the table |
[in] | device_id | print the memory info of the specified device. -1 signifies active device. |
Sets the path where the kernels generated at runtime will be cached.
Sets the path where the kernels generated at runtime will be stored to cache for later use. The files in this directory can be safely deleted. The default location for these kernels is in $HOME/.arrayfire on Unix systems and in the ArrayFire temp directory on Windows.
[in] | path | The location where the kernels will be stored |
[in] | override_env | if true this path will take precedence over the AF_JIT_KERNEL_CACHE_DIRECTORY environment variable. If false, the environment variable takes precedence over this path. |
Set the minimum memory chunk size.
Works only with the default memory manager - returns an error if a custom memory manager is set.
Unlock device buffer in the memory manager.
This function will give back the control over the device pointer to the memory manager.
Unlock device buffer in the memory manager.
This function will give back the control over the device pointer to the memory manager.
AFAPI void deviceGC | ( | ) |
Call the garbage collection function in the memory manager.
AFAPI void deviceMemInfo | ( | size_t * | alloc_bytes, |
size_t * | alloc_buffers, | ||
size_t * | lock_bytes, | ||
size_t * | lock_buffers | ||
) |
Gets information about the memory manager.
[out] | alloc_bytes | the number of bytes allocated by the memory |
[out] | alloc_buffers | the number of buffers created by the memory |
[out] | lock_bytes | The number of bytes in use |
[out] | lock_buffers | The number of buffers in use |
AFAPI size_t getMemStepSize | ( | ) |
Get the resolution of memory chunks.
Works only with the default memory manager - throws if a custom memory manager is set.
AFAPI void printMemInfo | ( | const char * | msg = NULL , |
const int | device_id = -1 |
||
) |
Prints buffer details from the ArrayFire Device Manager.
[in] | msg | A message to print before the table |
[in] | device_id | print the memory info of the specified device. -1 signifies active device. |
AFAPI void setMemStepSize | ( | const size_t | size | ) |
Set the resolution of memory chunks.
Works only with the default memory manager - throws if a custom memory manager is set.