A System-Level Dynamic Voltage Scaling tool
This tool generates a voltage schedule for all the components of a multi-core system so that the total energy consumption of the system and number of voltage-mode transitions are optimized. You can model your system and application in our SDF format. The system model include the number and type of the components and their DVS modes. The application is captured using task graphs. You can either download the source code of the tool or run it online.
The source code of my DVS tool is available here. Before using this source code you need to install MSXML 6.0 on your machine (simplly google MSXML 6.0). After the installation, you should include the following in the MainLibrary/Utils/TXMLInterface.h file.
#include "<MSXML6 installation directory>/inc/msxml6.h"
Currently, the default include is as follows:
#include "C:/Program Files/MSXML 6.0/inc/msxml6.h"
Therefore, if your installation path is the same as above, you don't need to change anything in the source code. With the source code comes some TGFF benchmarks that are converted to SDF format. The same benchmarks are also used in the ISLPED04 and TODEAS07 publications. To compile the code, open the visual studio solution in the main directory and build it. To run the code, you need to specify the SDF input file:
> IT_DVS.exe /sdfFile:myfile.xml
This runs the exploration for up to 300 iterations and report the results on your screen in XML format. To explore other options for running the tool, use "/?" switch. The outputs of the dynamic voltage scaling tool are as follows: (1) for each task, an optimized voltage mode is computed. (2) total number of mode transitions. (3) total runtime (execTime) of the algorithm excluding the time spent for loading the input XML file. (4) total amount of energy saving. (5) base-line (no-DVS) energy consumption.
The online version of my DVS tool :
You can run the online version of the tool from here. In the online version of the tool, the following outputs are generated: (1) the outputs mentioned above. (2) the graphical view of the given task graph is generated. (3) a gant chart that shows the schedule of tasks after voltage scaling is generated .
Parameters of the algorithm:
In the web-based tool user should specify two parameters:
(a) Maximum number of iterations: ASG-VTS is an iterative algorithm. The optimization terminates if number of iterations reaches the specified value.
(b) Number of useless recovery cycles: The algorithm performs several cycles of slack distribution and slack recovery. If no improvement is achieved after this many recovery cycles, the algorithm terminates itself, even if number of iterations is still less than the maximum iteration number.Generated Outputs:
The output includes the schedule of tasks, the selected modes and the task graph structure.
The SDF format:
The algorithm accepts an xml-based format, called System Description Format (SDF), as input. Before running the optimization, the validity of the input is checked using this schema file. The documentation of SDF is available here.
References:
[1] B. Gorjiara, N. Bagherzadeh, P. Chou, "Ultra-Fast and Efficient Algorithm for Energy Optimization by Gradient-based Stochastic Voltage and Task Scheduling", ACM Transactions on Design Automation of Electronic Systems (TODAES), 2007.
[2] B. Gorjiara, N. Bagherzadeh, P. Chou, "An Efficient Voltage Scaling Algorithm for Complex SoCs with Few Number of Voltage Modes", International Symposium on Low Power Electronics and Design (ISLPED), 2004.
[Back to the web-based tool] [Home] [IMPACCT]
Please send your questions and comments to Bita Gorjiara: bgorjiar [AT] ece.uci.edu