OPINCAA is a macro assembler and run-time environment for the pRISC SIMD accelerator, delivered as source code or Linux shared library. It enables a programmer to interleave, within the same C++ program, pieces of code which execute on the host with pieces of accelerator code. In this respect, OPINCAA is similar to OpenCL/CUDA, but more simple in its design. OPINCAA performs just-in-time assembly of pRISC code.
OPINCAA has the following features:
- Kernel syntax for describing code which executes on the accelerator,
- Support for all architectural features of the pRISC, including vector-specific instructions such as reduction (dot-product),
- Support for initiating execution on the pRISC, transferring data to and from the accelerator, and reading back reduction results,
- Built-in emulator enables code debugging without pRISC hardware,
- Flexible FIFO (Linux pipe) interfaces to the accelerator, which decouples OPINCAA from the underlying DMA layers,
- Work in Progress: Code analysis tools and support for run-time reconfigurable pRISC accelerators.
OPINCAA is currently hosted on DCAE GitLab. It may be built with any C++11 compiler. It has been extensively tested with GCC but should work with other compilers equally well.