arrayfire.device module¶
Functions to handle the available devices in the backend.
arrayfire.device.
alloc_device
(num_bytes)[source]¶Allocate a buffer on the device with specified number of bytes.
arrayfire.device.
alloc_host
(num_bytes)[source]¶Allocate a buffer on the host with specified number of bytes.
arrayfire.device.
alloc_pinned
(num_bytes)[source]¶Allocate a buffer on the host using pinned memory with specified number of bytes.
arrayfire.device.
device_info
()[source]¶- Returns a map with the following fields:
‘device’: Name of the current device.
‘backend’: The current backend being used.
‘toolkit’: The toolkit version for the backend.
‘compute’: The compute version of the device.
arrayfire.device.
device_mem_info
()[source]¶- Returns a map with the following fields:
- ‘alloc’: Contains the map of the following
‘buffers’ : Total number of buffers allocated by memory manager.
‘bytes’ : Total number of bytes allocated by memory manager.
- ‘lock’: Contains the map of the following
‘buffers’ : Total number of buffers currently in scope.
‘bytes’ : Total number of bytes currently in scope.
arrayfire.device.
eval
(*args)[source]¶Evaluate one or more inputs together
- Parameters
- argsarguments to be evaluated
Examples
>>>a=af.constant(1,3,3)>>>b=af.constant(2,3,3)>>>c=a+b>>>d=a-b>>>af.eval(c,d)# A single kernel is launched here>>>carrayfire.Array()Type: float[3 3 1 1]3.0000 3.0000 3.00003.0000 3.0000 3.00003.0000 3.0000 3.0000
>>>darrayfire.Array()Type: float[3 3 1 1]-1.0000 -1.0000 -1.0000-1.0000 -1.0000 -1.0000-1.0000 -1.0000 -1.0000
arrayfire.device.
get_device_ptr
(a)[source]¶Get the raw device pointer of an array
- Parameters
- a: af.Array
A multi dimensional arrayfire array.
- Returns
- internal device pointer held by a
arrayfire.device.
get_manual_eval_flag
()[source]¶Query the backend JIT engine to see if the user disabled heuristic evaluation of the JIT tree.
arrayfire.device.
info
()[source]¶- Displays the information about the following:
ArrayFire build and version number.
The number of devices available.
The names of the devices.
The current device being used.
arrayfire.device.
info_str
(verbose=False)[source]¶- Returns information about the following as a string:
ArrayFire version number.
The number of devices available.
The names of the devices.
The current device being used.
arrayfire.device.
is_dbl_supported
(device=None)[source]¶Check if double precision is supported on specified device.
- Parameters
- device: optional: int. default: None.
id of the desired device.
- Returns
- True if double precision supported.
False if double precision not supported.
arrayfire.device.
is_half_supported
(device=None)[source]¶Check if half precision is supported on specified device.
- Parameters
- device: optional: int. default: None.
id of the desired device.
- Returns
- True if half precision supported.
False if half precision not supported.
arrayfire.device.
is_locked_array
(a)[source]¶Check if the input array is locked by the user.
- Parameters
- a: af.Array
A multi dimensional arrayfire array.
- Returns
- A bool specifying if the input array is locked.
arrayfire.device.
lock_array
(a)[source]¶Ask arrayfire to not perform garbage collection on raw data held by an array.
- Parameters
- a: af.Array
A multi dimensional arrayfire array.
arrayfire.device.
lock_device_ptr
(a)[source]¶This functions is deprecated. Please use lock_array instead.
arrayfire.device.
print_mem_info
(title='MemoryInfo',device_id=None)[source]¶Prints the memory used for the specified device.
- Parameters
- title: optional. Default: “Memory Info”
Title to display before printing the memory info.
- device_id: optional. Default: None
Specifies the device for which the memory info should be displayed.
If None, uses the current device.
Examples
>>>a=af.randu(5,5)>>>af.print_mem_info()Memory Info---------------------------------------------------------| POINTER | SIZE | AF LOCK | USER LOCK |---------------------------------------------------------| 0x706400000 | 1 KB | Yes | No |--------------------------------------------------------->>>b=af.randu(5,5)>>>af.print_mem_info()Memory Info---------------------------------------------------------| POINTER | SIZE | AF LOCK | USER LOCK |---------------------------------------------------------| 0x706400400 | 1 KB | Yes | No || 0x706400000 | 1 KB | Yes | No |--------------------------------------------------------->>>a=af.randu(1000,1000)>>>af.print_mem_info()Memory Info---------------------------------------------------------| POINTER | SIZE | AF LOCK | USER LOCK |---------------------------------------------------------| 0x706500000 | 3.815 MB | Yes | No || 0x706400400 | 1 KB | Yes | No || 0x706400000 | 1 KB | No | No |---------------------------------------------------------
arrayfire.device.
set_device
(num)[source]¶Change the active device to the specified id.
- Parameters
- num: int.
id of the desired device.
arrayfire.device.
set_manual_eval_flag
(flag)[source]¶Tells the backend JIT engine to disable heuristics for determining when to evaluate a JIT tree.
- Parameters
- flagoptional: bool.
Specifies if the heuristic evaluation of the JIT tree needs to be disabled.
arrayfire.device.
sync
(device=None)[source]¶Block until all the functions on the device have completed execution.
- Parameters
- device: optional: int. default: None.
id of the desired device.