ArrayFire is the fastest GPU matrix library with the simplest API.
ArrayFire is the fastest GPU software
- It contains the fastest implementations of data analysis and linear algebra routines that enable it outperform CPU libraries like IPP, MKL, Eigen, Armadillo, and more.
- It is optimized for any CUDA-enabled GPU. The same code will run on laptops, desktops, or servers.
- It includes thousands of lines of highly-tuned device code.
- It performs run-time analysis of your code to increase arithmetic intensity and memory throughput while avoiding unnecessary temporary allocations.
- It combines and enhances all the best CUDA libraries available, including the fastest FFT, BLAS, and LAPACK implementations.
ArrayFire is the easiest-to-use GPU software
- A few lines of ArrayFire code accomplishes what would have taken 10-100X lines in raw CUDA.
ArrayFire is the most comprehensive GPU software
- It has hundreds of functions you need to make your code faster including arithmetic, linear algebra, statistics, and other algorithms (see more).
- It supports single- and double-precision floating point values, complex numbers, and booleans (see more).
- It supports manipulating vectors, matrices and arrays up to 4 dimensions
See it in action...
Here's an example to perform inner product on a matrix
program inner_mul
use arrayfire
implicit none
type(array) A
real, allocatable, dimension(:,:) res
A = randu(10, 2)
call print(A)
res = matmul(A, transpose(A))
write(*,*) "Output of inner mul: "
write(*,*) b(:,:)
end program inner_mul
Download and Requirements
Download the latest stable version of the library and view documentation online. See Release Notes for a list of changes in each version. You can also download nightly builds including the latest features and bug fixes. Supported Platforms:
- Linux (32 and 64-bit) - Ubuntu 10+, Fedora 10+, OpenSUSE 11+, RHEL 5+, CentOS 5+, SLES 10+
Requirements:
Getting Started:
- The Getting Started tutorial walks through more detailed steps on getting your first example to compile and run.
Tutorials