Arrayfire Lua Bindings
ArrayFire is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific computing code that is portable across CUDA, OpenCL and CPU devices. This project provides Lua bindings for the ArrayFire library.
The wrapper is currently compliant with ArrayFire 3.2 API (and higher). If you find any bugs, please report them here.
Example
local AF = require("arrayfire")
AF.main(function()
local x = AF.randu(5, "f32")
AF.print("x", x)
AF.print("min of x", AF.min(x))
AF.print("max of x", AF.max(x))
end)$ lua examples/lua/helloworld/intro.lua
ArrayFire v3.2.1 (CUDA, 64-bit Linux, build f263db0)
Platform: CUDA Toolkit 7.5, Driver: 358.16
[0] GeForce GTX 690, 2047 MB, CUDA Compute 3.0
-1- GeForce GTX 690, 2048 MB, CUDA Compute 3.0
x
[5 1 1 1]
0.7402
0.9210
0.0390
0.9690
0.9251
min of x
[1 1 1 1]
0.0390
max of x
[1 1 1 1]
0.9690
Documentation
TODO
Getting Started
Requirements
cmakeVisual Studioon Windows,clang/gccon Linux / OSX.
Get ArrayFire libraries
You can install ArrayFire using one of the following two ways.
Post Installation Instructions
- Please read the wiki page for setting up the proper environment variables.
Building the Lua module
Windows
- Launch
cmake-gui. Set source and build directories. - Press configure.
- Select
generatorasVisual Studio 12 2013 Win64.- You can choose a different generator as long as it is Win64.
- Set
CMAKE_INSTALL_PREFIXto a location of choice. - Press generate. The generated visual studio solution file will be present in the build directory.
- Open the VS solution file and build the
INSTALLproject.
Linux / OSX
- Make sure the environment variable
ArrayFire_DIRis set to/path/to/arrayfire/share/ArrayFire/cmake. - Create a build directory and
cdinto it. - Run
cmake /path/to/arrayfire-lua/ -DCMAKE_INSTALL_PREFIX=package. - Run
make
Setting up Lua paths
Windows
> SET LUA_PATH=C:\path\to\install\location\arrayfire\?.lua;;
> SET LUA_CPATH=C:\path\to\install\location\?.dll;;
> lua.exe helloworld/helloworld.lua
Linux
$ export LUA_PATH="/path/to/install/location/arrayfire/?.lua;;"
$ export LUA_CPATH="/path/to/install/location/?.so;;"
$ lua helloworld/helloworld.lua
You should now be good to go!
Issues
This is a work in progress and is not intended for production use.
Acknowledgements
This project began with significant contributions from Steven Johnson. It is currently being maintained by @arrayfire/lua-devel team.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
