CEDR is a Linux-based compilation and runtime framework that provides an ecosystem for hardware-software co-design and evaluation of heterogeneous SoCs during the pre-silicon design phase. This framework holistically targets three key challenges of SoC design: accelerator integration, resource management, and application development. CEDR is a flexible and lightweight user-space runtime environment that is portable across different SoC platforms.
The runtime in CEDR is implemented as a resource management daemon process that is capable of performing scheduling on the dynamically submitted jobs. A job is represented using a data flow graph (JSON file) and binary generated by the compiler tool. The resource management daemon process (block 1) is multi-threaded. One of the threads act as a management thread to handle user-submitted jobs. The remaining threads are the worker threads responsible for executing the assigned tasks. The job submission process is a user-command that is responsible for transferring the user inputs to the daemon process. The framework has been validated on ZCU102 and Odroid XU3 platforms.
In the future, we will strengthen the capabilities of the compiler tool to identify kernels in the complex workload and integrate richer scheduling algorithms in the framework.