Skip to content

OCCA Python API: JIT Compilation for Multiple Architectures

License

Notifications You must be signed in to change notification settings

libocca/occa.py

Repository files navigation

occa

 

Binder Build Status codecov.io Gitter

 

What is OCCA?

In a nutshell, OCCA (like oca-rina) is an open-source library which aims to

  • Make it easy to program different types of devices (e.g. CPU, GPU, FPGA)
  • Provide a unified API for interacting with backend device APIs (e.g. OpenMP, CUDA, OpenCL)
  • Use just-in-time compilation to build backend kernels
  • Provide a kernel language, a minor extension to C, to abstract programming for each backend

 

Links

 

Installing

pip install occa

Development

Try out local installation

git submodule update --init
pip install -e .

Between updates, run

# To avoid doing a `make clean` each time, use the `--no-clean` flag
python setup.py build_ext --no-clean --inplace

Running Tests

pytest tests

Deployment

Test deployment before uploading package to pypi

python setup.py install sdist
pip install dist/occa-<version>.tar.gz

After testing, upload to pypi by running

twine upload dist/*