OCCA is an open-source (MIT license) library used to program current multi-core/many-core architectures. Devices (such as CPUs, GPUs, Intel's Xeon Phi, FPGAs, etc) are abstracted using an offload-model for application development and programming for the devices is done through a C-based (OKL) kernel. OCCA gives developers the ability to target devices at run-time by using run-time compilation for device kernels.
- Documentation
- Want to contribute? Checkout the 'Good First Issue' issues
- More of a challenge? Checkout the 'Help Needed' issues
- 🌟 Who's using OCCA?
git clone https://github.com/libocca/occa.git
cd occa
make -j 4
Setup environment variables inside the occa
directory
export PATH+=":${PWD}/bin"
export LD_LIBRARY_PATH+=":${PWD}/lib"
export PATH+=":${PWD}/bin"
export DYLD_LIBRARY_PATH+=":${PWD}/lib"
cd examples/1_add_vectors/cpp
make
./main
There is an executable occa
provided inside bin
> occa --help
Usage: occa COMMAND
Can be used to display information of cache kernels.
Commands:
autocomplete Prints shell functions to autocomplete occa
commands and arguments
cache Cache kernels
clear Clears cached files and cache locks
env Print environment variables used in OCCA
info Prints information about available OCCA modes
version Prints OCCA library version
Arguments:
COMMAND Command to run
. <(occa autocomplete bash)