ngaloppo / isaac

Input Specific Architecture Aware Computations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ISAAC

This is the developer repository for ISAAC, a modern C++11 library for Numerical Computing. ISAAC uses Machine-Learning techniques to achieve input-specific and architecture-aware computations, thereby outperforming cuBLAS and clBLAS on many applications for NVidia, Intel and AMD GPUs.

This is an ALPHA version: only the C API is supported for now.

License

ISAAC is distributed under the GNU LGPL v2.1 License.

Installation

ISAAC is dependency-free, and will load either OpenCL or CUDA 7.0+ dynamically depending on which GPUs are detected at runtime.

Installation requires CMake 2.8.7+ and a C++11 compliant compiler:

git clone https://github.com/ptillet/isaac.git
mkdir -p isaac/build && cd isaac/build
cmake ../ && make -j4

APIs

The C API implements several binary symbols of both clBLAS and cuBLAS. To use ISAAC, simply link your application against libisaac.so instead of libclblas.so or libcublas.so

The C++ API relies on its own dynamic typing system and JIT compilation to achieve peak performance (i.e., auto-tuning, loop fusion and temporaries removal) all while preserving Numpy-like interface.

The Python API of ISAAC provides a tight wrapper around the C++ API.

About

Input Specific Architecture Aware Computations

License:GNU Lesser General Public License v2.1


Languages

Language:C++ 94.9%Language:CMake 3.0%Language:Python 1.6%Language:Cuda 0.4%Language:C 0.1%Language:Gnuplot 0.0%Language:Shell 0.0%