Overview

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.

SoftwareStack

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.

Implementation

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.