Skip to content

ngaloppo/isaac

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.9%
  • CMake 3.0%
  • Python 1.6%
  • Cuda 0.4%
  • C 0.1%
  • Gnuplot 0.0%