ArrayFire Python Wrapper¶
Introduction¶
ArrayFire is a high performance scientific computing library with an easy to use API.
>>> # Monte Carlo estimation of pi
>>> def calc_pi_device(samples):
# Simple, array based API
# Generate uniformly distributed random numers
x = af.randu(samples)
y = af.randu(samples)
# Supports Just In Time Compilation
# The following line generates a single kernel
within_unit_circle = (x * x + y * y) < 1
# Intuitive function names
return 4 * af.count(within_unit_circle) / samples
Programs written using ArrayFire are portable across CUDA, OpenCL and CPU devices.
The default backend is chosen in the following order of preference based on the available libraries:
- CUDA
- OpenCL
- CPU
The backend can be chosen at the beginning of the program by using the following function
>>> af.backend.set(name)
where name is one of ‘cuda’, ‘opencl’ or ‘cpu’.
The functionality provided by ArrayFire spans the following domains:
- Vector Algorithms
- Image Processing
- Signal Processing
- Computer Vision
- Linear Algebra
- Statistics
Submodules
arrayfire.algorithm |
Vector algorithms (sum, min, sort, etc). |
arrayfire.arith |
Math functions (sin, sqrt, exp, etc). |
arrayfire.array |
Array class and helper functions. |
arrayfire.base |
Implementation of BaseArray class. |
arrayfire.bcast |
Function to perform broadcasting operations. |
arrayfire.blas |
BLAS functions (matmul, dot, etc) |
arrayfire.cuda |
Functions specific to CUDA backend. |
arrayfire.data |
Functions to create and manipulate arrays. |
arrayfire.device |
Functions to handle the available devices in the backend. |
arrayfire.features |
Features class used for Computer Vision algorithms. |
arrayfire.graphics |
Graphics functions (plot, image, etc). |
arrayfire.image |
Image processing functions. |
arrayfire.index |
Index and Seq classes used in indexing operations. |
arrayfire.interop |
Interop with other python packages. |
arrayfire.lapack |
Dense Linear Algebra functions (solve, inverse, etc). |
arrayfire.library |
Module containing enums and other constants. |
arrayfire.opencl |
Functions specific to OpenCL backend. |
arrayfire.signal |
Signal processing functions (fft, convolve, etc). |
arrayfire.statistics |
Statistical algorithms (mean, var, stdev, etc). |
arrayfire.timer |
Functions to time arrayfire. |
arrayfire.util |
Utility functions to help with Array metadata. |
arrayfire.vision |
Computer vision functions (FAST, ORB, etc) |