|
typedef std::pair< std::string, ExplorerPluginParameter > | Parameter |
|
typedef std::map< std::string, ExplorerPluginParameter > | ParameterMap |
|
typedef std::map< std::string, ExplorerPluginParameter >::iterator | PMIt |
|
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator | PMCIt |
|
virtual bool | requiresApplication () const |
|
virtual std::string | description () const |
|
void | addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="") |
|
template<typename T > |
void | readCompulsoryParameter (const std::string paramName, T ¶m) const |
|
template<typename T > |
void | readOptionalParameter (const std::string paramName, T ¶m) const |
|
template<typename RT > |
RT | parameterValue (const std::string ¶mName) const |
|
virtual | ~DesignSpaceExplorerPlugin () |
|
virtual void | giveParameter (const std::string &name, const std::string &value) |
|
virtual std::string | name () const |
|
virtual void | setPluginName (const std::string &pluginName) |
|
virtual bool | hasParameter (const std::string ¶mName) const |
|
ParameterMap | parameters () const |
|
virtual bool | booleanValue (const std::string ¶meter) const |
|
| DesignSpaceExplorer () |
|
virtual | ~DesignSpaceExplorer () |
|
virtual void | setDSDB (DSDBManager &dsdb) |
|
virtual bool | evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false) |
|
virtual DSDBManager & | db () |
|
std::vector< DesignSpaceExplorerPlugin * > | getPlugins () |
|
RowID | createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
|
bool | createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
|
IDF::MachineImplementation * | selectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const |
|
void | createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay) |
|
RowID | addConfToDSDB (const DSDBManager::MachineConfiguration &conf) |
|
static DesignSpaceExplorerPlugin * | loadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL) |
|
| DesignSpaceExplorerPlugin () |
|
void | checkParameters () const |
|
TTAProgram::Program * | schedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3") |
|
const ExecutionTrace * | simulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL) |
|
std::string | pluginName_ |
| the name of the explorer plugin More...
|
|
ParameterMap | parameters_ |
| Parameters for the plugin. More...
|
|
Explorer plugin for finding processor configurations that satisfy the runtime requirements with certain clock frequencies.
Sweeps the user-set allowed frequency range with the given steps and collects all configurations that are suitable for running the given applications in the given clock frequencies.
Uses all HDBs found in the HDB registry to create the configurations.
Supported parameters:
- start_freq_mhz, lowest frequency in the swept range in MHz
- end_freq_mhz, highest frequency in the range in MHz
- step_freq_mhz, frequency step in MHz
- ic_dec, name of the ic decoder plugin, default is DefaultICDecoder
- ic_hdb, name of the HDB that is used in IC estimation
Definition at line 102 of file FrequencySweepExplorer.cc.
virtual std::vector<RowID> FrequencySweepExplorer::explore |
( |
const RowID & |
startPointConfigurationID, |
|
|
const unsigned int & |
|
|
) |
| |
|
inlineprivatevirtual |
Explores from the given start configuration.
- Parameters
-
startPointConfigurationID | Configuration ID to start the exploration from. |
- Returns
- Returns a set of best found configuration IDs.
- Todo:
- Optimization of the instruction size not required for 1st version!
- Todo:
- Final optimization/tuning not required for 1st version!
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 136 of file FrequencySweepExplorer.cc.
142 std::vector<RowID> result;
144 RowID startPointConfID = startPointConfigurationID;
149 "SimpleICOptimizer", &
db());
152 "MinimizeMachine", &
db());
155 "GrowMachine", &
db());
175 vector<RowID> cycleOptimizedConfs =
176 growMachine->
explore(startPointConfID);
178 std::ostringstream msg(std::ostringstream::out);
179 msg <<
"GrowMachine plugin produced initial configs: ";
180 for (
unsigned int i = 0; i < cycleOptimizedConfs.size(); ++i) {
181 msg << cycleOptimizedConfs.at(i) <<
" ";
189 int currentFrequencyMHz = sweeper.nextFrequency();
190 vector<RowID>::const_iterator archIter;
191 while (currentFrequencyMHz != 0) {
194 currentFrequencyMHz), 3)
198 for (archIter = cycleOptimizedConfs.begin();
199 archIter != cycleOptimizedConfs.end();
202 verboseLogC(
"Testing (fast enough) init config: " +
205 if (
fastEnough(*archIter, currentFrequencyMHz, dsdb)) {
206 verboseLogC(
"Calling minimize machine for init config: " +
220 verboseLogC("Implementation selection produced a config: "
224 if (selectedConf == 0) {
225 verboseLogC(
"Component selection failed for minimized"
227 minConf.architectureID), 3)
232 vector<
RowID> icOptimizedResult =
233 icOptimizer->
explore(selectedConf);
234 if (icOptimizedResult.size() == 1) {
236 std::ostringstream msg(std::ostringstream::out);
237 msg <<
"Config " << icOptimizedResult.at(0)
238 <<
" created for frequency "
239 << currentFrequencyMHz <<
"." << endl;
242 result.push_back(icOptimizedResult.at(0));
266 currentFrequencyMHz = sweeper.nextFrequency();
269 delete minimizeMachine;
270 minimizeMachine = NULL;
References DSDBManager::MachineConfiguration::architectureID, DesignSpaceExplorerPlugin::explore(), DesignSpaceExplorerPlugin::giveParameter(), DesignSpaceExplorer::loadExplorerPlugin(), FrequencySweep::nextFrequency(), Conversion::toString(), Application::verboseLevel(), verboseLog, and verboseLogC.