Often suffering from under-optimization, Networks-on-Chip (NoCs) heavily impact the efficiency of domain-specific Systems-on-Chip. To cope with this issue, heterogeneous NoCs are promising alternatives. Nevertheless, the design of optimized NoCs satisfying multiple performance objectives is extremely challenging and requires significant expertise. Prior works failed to combine many objectives or required an extended design space exploration time. In this paper, we propose an approach based on generative artificial intelligence to help pruning complex design spaces for heterogeneous NoCs, according to configurable performance objectives. This is made possible by the ability of Generative Adversarial Networks to learn and generate relevant design candidates for the target NoCs. The speed and flexibility of our solution enable a fast generation of optimized NoCs that fit users' expectations. Through some experiments, we show how to obtain competitive NoC designs reducing the power consumption with no communication performance or area penalty compared to a given conventional NoC design.
We propose GANNoC, a framework for automatic generation of customized Network-on-Chip (NoC) topologies, which exploits generative adversarial networks (GANs) learning capabilities. We define the problem of NoC generation as a graph generation problem, and train a GAN to produce such graphs. We further present a Reward-WGAN (RWGAN) architecture, based on the Wasserstein GAN (WGAN). It is coupled to a reward network enabling to steer the resulting generative system towards topologies having desired properties. We illustrate this capability through a case study aimed at producing topologies with a specific number of physical connections. After training, the generative network produces unique topologies with a 36% improvement regarding the number of connections, when compared to those found in the training dataset. NoCs’ performance assessment is carried out using the Ratatoskr 3D-NoC simulator with state-of-the-art characteristics. Results suggest interesting opportunities in learning correlations between intrinsic NoC features and resulting performance.
Energy-efficiency has been a major challenge in compute systems over the last decade. In this paper, we pro-pose an approach for on-line energy-efficiency mesure-ment when executing OpenMP workloads on multicore systems. The novelty of our approach lies in the ability to monitor energy efficiency at run-time without prior knowledge of the application profile or code annotation. The solution relies on two new metrics: the Chunks per Second (CpS) and Chunks per Joule (CpJ). The former captures the quantity of work achieved by threads per unit time (i.e. a performance indicator). The latter indicates the quantity of work achieved by threads per unit energy, also corresponding to the performance per watt. We show that these new metrics are suitable information making it possible to perform energy efficiency analysis.
Optimizing energy-efficiency of modern multicore compute systems through online control is often regarded as both promising and challenging. In this paper, we propose a dynamic control technique for OpenMP workloads that exploits online energy efficiency measures derived from the OpenMP runtime. The proposed strategy relies on an automatic program phase identification which detects workload execution patterns, used by an online learning back-end. We design a synthetic benchmark template that makes it possible to produce benchmarks with controllable characteristics for mimicking a wide range of workload profiles. Experimental results show improvements on a 20-core server when compared to default Linux governors.
Energy-efficiency has been a major challenge in compute systems over the last decade. Both embedded and highperformance computing domains are concerned. Many efforts have been currently spent to devise solutions that are capable of providing systems with the best compromises in terms of performance and power consumption. In this paper, we propose an approach for on-line energy-efficiency analysis when executing OpenMP workloads on multicore systems. The novelty of our approach lies in the ability to monitor energy efficiency at runtime without prior knowledge of the application profile or code annotation. The solution relies on two new metrics: the Chunks per Second (CpS) and Chunks per Joule (CpJ). The former captures the quantity of work achieved by threads per unit time (i.e. a performance indicator). The latter indicates the quantity of work achieved by threads per unit energy, also corresponding to the performance per watt (i.e. an energy efficiency indicator). As most programs are made of several phases performing different computations for which CpS and CpJ cannot be related, it is crucial to be capable of detecting phase changes such as to perform intra-phase energy efficiency optimizations. For that purpose we devise a specific neural network model derived from the popular auto-encoder largely explored in the machine learning community, that is capable of understanding application profile and track phase changes at run-time. We show that these new metrics allow to perform energy efficiency optimization, and illustrate our approach on the analysis of the SRAD application from the Rodinia benchmark. The energy-efficiency profile analysis of the application is conducted on both an Intel and ARM platforms, showing its flexibility.