Compiler-Integrated Extensible DSSoC Runtime


About CEDR

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.

Publications and News

  1. Our paper User-Space Emulation Framework for Domain-Specific SoC Design was accepted to the 2020 IPDPS Heterogeneity in Computing Workshop.
  2. "DS3: A System-Level Domain-Specific System-onChip Simulation Framework,” IEEE Transactions on Computers, 15 pages, Apr. 2020.
  3. "Automating Programming and Development of Heterogeneous SoCs with LLVM Tools," Free and Open source Software Developers European Meeting (FOSDEM 2020), Feb. 2020.
  4. Presented poster on Heterogeneous SoC Design Space Exploration with an FPGA based Emulation Framework at International Conference on ReConFigurable Computing and FPGAs (ReConFig), Dec. 2019.
  5. Presented poster and demo on Emulation Framework for Hardware-Software Co-Design of Heterogeneous SoCs at ARM Research Summit, Sep. 2019.

Project Status and Future Work

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.

Current Contributors