Software Stack#
Software stack.#
Heterogeneous Stack#
The Richie platform includes a mature software stack to deploy heterogeneous applications to the underlying hardware subsystem.
The heterogeneous application starts on the host, while the device is targeted via a computation offloading command. The Application Programming Interface (API)` relaxes the interfacing with diverse platforms, easing code portability and reuse. It supports accelerator and DMA control, multi-cluster communication, and memory management.
Host-to-device offloading is supported employing the OpenMP programming model and its Run-Time Environment (RTE). The host invokes a device-specific plugin and provides the device with a pointer to the offloaded code and data. After an initialization phase, the device starts executing.
Besides, an off-the-shelf Linux kernel distribution is adopted to ease the deployment of legacy software on the host, while the low-level device RTE supports the OpenMP constructs, platform-specific routines and functions on the device side. The Hardware Abstraction Layer (HAL) sits on top of the device bare metal and implements optimized primitives and basic functionalities for the underlying hardware.