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.set_backend(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¶
Vector algorithms (sum, min, sort, etc). |
|
Math functions (sin, sqrt, exp, etc). |
|
Array class and helper functions. |
|
Implementation of BaseArray class. |
|
Function to perform broadcasting operations. |
|
BLAS functions (matmul, dot, etc) |
|
Functions specific to CUDA backend. |
|
Functions to create and manipulate arrays. |
|
Functions to handle the available devices in the backend. |
|
Features class used for Computer Vision algorithms. |
|
Graphics functions (plot, image, etc). |
|
Image processing functions. |
|
Index and Seq classes used in indexing operations. |
|
Interop with other python packages. |
|
Dense Linear Algebra functions (solve, inverse, etc). |
|
Module containing enums and other constants. |
|
Functions specific to OpenCL backend. |
|
Random engine class and functions to generate random numbers. |
|
Functions to create and manipulate sparse matrices. |
|
Signal processing functions (fft, convolve, etc). |
|
Statistical algorithms (mean, var, stdev, etc). |
|
Functions to time arrayfire. |
|
Utility functions to help with Array metadata. |
|
Computer vision functions (FAST, ORB, etc) |