ArrayFire - oneAPI Backend
John Melonakos
Unknown
- 0 Collaborators
ArrayFire is a general-purpose tensor library that simplifies the process of software development for the parallel architectures found in CPUs, GPUs, and other hardware acceleration devices. This project is to develop a oneAPI backend to the library, which currently supports CUDA, OpenCL, and x86. ...learn more
Project status: Under Development
oneAPI, Mobile, HPC, Artificial Intelligence
Overview / Usage
ArrayFire is an open-source tensor library of math, science, and engineering functions used by technical computing domain professionals to do fast computations on large datasets. It is very fast because it is laser-focused on extracting top performance from GPUs or other accelerator devices.
ArrayFire powers some really important projects today. Our users represent the most innovative projects in technical computing using AI/machine learning or direct algorithmic excellence.
Examples include this quadrupedal unmanned ground vehicle robot from Ghost Robotics, powered by ArrayFire, and this state-of-the art C++ machine learning framework from Facebook, built using ArrayFire arrays.
Methodology / Approach
Among its many benefits, it is one of the best ways for our industry to work together since ArrayFire users are able to write their code once in the library and easily switch between devices from different HW-vendors, benefitting from all the lower-level HW-vendor-specific optimizations. With ArrayFire, you can easily switch between backend HW devices without code modification.
Today, ArrayFire does not contain a oneAPI backend. This project is to add oneAPI to the already existing CUDA, OpenCL, and x86 backends in the ArrayFire open-source project.
Technologies Used
- Technologies: A C/C++ library, including the ArrayFire JIT compiler, hand-tuned kernels, and memory manager
- Library tools: OpenCL, Boost, CLBlast, OpenGL
- Software: C/C++ with additional wrappers for Python, Ruby, Rust, Julia, Nim, Java, Fortran, Lua, and more
- Hardware: Intel CPUs and integrated graphics, GPU accelerators
- Intel technologies: DPC++, oneAPI, oneMKL
Repository
https://github.com/arrayfire/arrayfire