CSL is working on mapping and optimizing interesting and emerging applications on reconfigurable platforms (FPGAs). We are currently working on improving the performance and energy efficiency of Simultaneous Localization and Mapping (SLAM) Algorithms used for real-time navigation of robots, drones, etc. In the past, we have investigated programming models, runtime systems, and compilation tools to automate the generation of new platform architectures. Starting from many-core programming models (e.g., OpenCL), we automatically define/select the SW/HW boundary and generate multiple hardware accelerators based on user requirements and system constraints. Execution is controlled by a run-time system which dynamically allocates resources and orchestrates data movement.
Approximate computing builds on the premise that not all computations and data are equally important to the output of an executing application. CSL research on approximate computing is twofold: First, we have extensively worked on programming models and runtime systems that enable the partition of applications in terms of their significance to Quality of Output, and we have also investigated the automatic significance analysis of algorithms. Second, to enable energy efficient computing, we have leveraged the design margins available in modern CPUs. Chip manufacturers introduce such margins to guarantee correct CPU operation, even for worst-case combinations of non-idealities in process variation and system operating conditions. This redundancy is implemented partly in the form of voltage margins. We have developed ML-based software to predict and apply the appropriate reduction of CPU supply voltage at run time. Such methods have been investigated both at the node and the datacenter level.
Power / Performance Optimization
CSL researchers have extensive research background on methodologies across the computing stack to improve performance and energy/power efficiency. These include heterogeneous and accelerator-based computing (GPUs, FPGAs), approximate computing, exploiting the CPU voltage margins with undervolting, as well as algorithmic, system software and compiler optimizations aiming at performance improvements and power reduction. These techniques span the whole computing spectrum from small IoT devices to datacenters and High-Performance Systems.
Heterogeneous systems use more than one kind of processors and accelerators to gain performance or energy efficiency. CSL has been investigating architectures and system software for heterogeneous systems including reconfigurable MPSoC, hardware-software codesign for heterogeneous computing, approximate computing for heterogeneous architectures, as well as runtime systems and programming models that exploit the characteristics of heterogeneous platforms.
CSL has done extensive work in the area of distributed computing, ranging from large-scale meta-computing systems to small wearable/embedded distributed systems. In the past, CSL has developed system-level support for wireless sensor and actuator networks, and a middleware for agent-based applications that can propagate into the wireless network in a dynamic fashion and can adjust their operation at runtime as a function of the available sensor and actuator resources. More recently, CSL is working on different aspects of drone-based systems, including the flexible employment and coordination of multiple and possibly heterogeneous drones, the tolerance of coordinator failures as well as the exploitation of edge computing to reduce mission times and increase operational autonomy.