CUDA
C/C++    Fortran   

ArrayFire CUDA Fortran Documentation

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