Take It to the Next Level with System Efficiency Enhancements
Jan. 8, 2018, 3:57 a.m.
Thierry Goubier (CEA)
System Efficiency Enhancements, SEEs for short, are a key concept of the M2DC platform. They enable integration of the various levels of acceleration offered by the flexibility and heterogeneity of the M2DC platform, while being invisible to applications and middleware alike, except when it comes to deployment. An SEE is usually a combination of a hardware part (an accelerator per se) and a software part (but it may also completely be in software), and, as such, totally hides from the user (which is either an application or the platform middleware) of that SEE how it is implemented and how it is accelerated.
SEEs are grouped in three categories: applications, communications, monitoring and workload management. The first group implements application acceleration solutions, in a transparent way, either hidden behind a standard API (such as OpenCV or OpenSSL) or a REST API: the application only has to use that API to be able to benefit from the SEE. In that group, we have an image processing SEE, an encryption SEE, and two deep learning SEEs used for benchmarking: a self-organizing map SEE and a convolution neural network SEE.
The second group implement communication acceleration, and, as before, SEEs are placed behind standard APIs such as MPI: any application using that communication interface benefits from the SEE, without any change.
The third group implements various ways of transparently improving the efficiency of the platform when running the application. We have a sensor data aggregation SEE which takes care of collecting readings from all the platform sensors and aggregate them, with a REST API. We have a pattern matching SEE which detect patterns overs streams of system events. We have a scheduling and allocation SEE which allocate compute tasks onto heterogeneous compute resources and handles self-healing to a degree, based on a runtime plugin API. And, for security, we have an intrusion detection SEE which monitors incoming traffic for suspicious activity.
SEE implementation reflect the heterogeneous and flexible nature of the M²DC platform: some SEEs use reconfigurable IPs in their implementation, others are implemented into dedicated low-power/high efficiency resources of the platform. The platform management is then tasked with the deployment in itself, by tracking the needed resources associated with each SEE (hardware, topology, firmware or bitstream) and allocating them as appropriate when preparing the deployment of an application. Given the nature of SEEs, the platform management may also allocate a pure software, non accelerated version of the component, to a loss of efficiency of course. To even augment the efficiency of the platform, hardware IPs used by some of the SEEs may be combined with application acceleration resources on reconfigurable devices, so that there is no need to dedicate a precious device in order to benefit from the SEE.
The current set of SEEs is just a starting point for the platform: the M²DC consortium envision a future of both a vertical market of domain specific appliances with the right combination of SEEs for maximum efficiency, and a stream of forward-looking SEEs bringing new benefits in efficiency and non-functional properties such as increased precision and security for the platform. Already, we're seeing that accelerator blocks developed for some SEEs are taking a generic nature and being reused for other SEEs, lowering the cost of developing them.