Pages

Wednesday, August 17, 2016

ArrayFire

And there is a Python wrapper.

"ArrayFire is a blazing fast software library for GPU computing. Its easy-to-use API and array-based function set make GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.

ArrayFire supports both CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel Xeon Phi co-processors. It also supports mobile OpenCL devices from ARM, Qualcomm, and others. We want your code to run as fast as possible, regardless of the hardware.

There is also a CPU version (named 'libafcpu') to fall back to when CUDA or OpenCL devices are not available.

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:
  1. CUDA
  2. OpenCL
  3. CPU
The backend can be also be chosen at the beginning of the program."

http://arrayfire.com/

 https://github.com/arrayfire/arrayfire-python

http://gpuopen.com/compute-product/arrayfire/ 

Real-Time Visualization of CUDA Data Using ArrayFire Forge - http://on-demand.gputechconf.com/gtc/2016/presentation/s6478-brian-kloppenborg-arrayfire-forge.pdf

Introduction to GPU Computing Using the ArrayFire Acceleration Library - http://on-demand.gputechconf.com/gtc/2015/video/S5797.html

Python Wrapper

The modules available in the Python wrapper are:

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.random Random engine class and functions to generate random numbers.
arrayfire.sparse Functions to create and manipulate sparse matrices.
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)

No comments:

Post a Comment