summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2017-04-20 13:29:32 +0200
committerDaniel Friesel <derf@finalrewind.org>2017-04-20 13:29:32 +0200
commit0ff76a5adc18c1161f607918f9fcaa0a60829119 (patch)
treed270c4240998fda5b55815d0d3570386dc411dc9 /bin
parentd0e6b9602d516e9d6310803e9c273cc74006fe39 (diff)
remove 'dfatool validate' support
Diffstat (limited to 'bin')
-rwxr-xr-xbin/dfatool5
-rwxr-xr-xbin/merge.py107
2 files changed, 2 insertions, 110 deletions
diff --git a/bin/dfatool b/bin/dfatool
index 0c57b7c..6de30d9 100755
--- a/bin/dfatool
+++ b/bin/dfatool
@@ -178,9 +178,6 @@ my %action = (
$driver->update_model;
}
},
- validate => sub {
- $driver->validate_model(@data_files);
- },
crossvalidate => sub {
printf("./dfatool crossvalidate %s %s\n",
$xml_file,
@@ -340,7 +337,7 @@ test programs to assess a device's energy usage.
B<dfatool> [I<options>] enable|disable|maketest|rmtest|log|loop I<driver.xml>
-B<dfatool> [I<options>] analyze|validate|crossvalidate|ls|list|show
+B<dfatool> [I<options>] analyze|crossvalidate|ls|list|show
I<driver.xml> I<data.tar> [I<moredata.tar ...>]
=head1 VERSION
diff --git a/bin/merge.py b/bin/merge.py
index 8cf4dca..e5365b2 100755
--- a/bin/merge.py
+++ b/bin/merge.py
@@ -841,109 +841,6 @@ def crossvalidate(by_name, by_param, by_trace, model, parameters):
print('estimate function %s timeout by %s: MAE %.f µs, SMAPE %.2f%%' % (
name, param, np.mean(estimate_mae[name]), np.mean(estimate_smape[name])))
-def validate(by_name, by_param, parameters):
- aggdata = {
- 'state' : {},
- 'transition' : {},
- }
- for key, val in by_name.items():
- name = key
- isa = val['isa']
- model = data['model'][isa][name]
-
- if isa == 'state':
- aggdata[isa][name] = {
- 'power' : {
- 'goodness' : aggregate_measures(model['power']['static'], val['means']),
- 'median' : np.median(val['means']),
- 'mean' : np.mean(val['means']),
- 'std_inner' : np.std(val['means']),
- 'function' : {},
- },
- 'online_power' : {
- 'goodness' : regression_measures(np.array(val['online_means']), np.array(val['means'])),
- 'median' : np.median(val['online_means']),
- 'mean' : np.mean(val['online_means']),
- 'std_inner' : np.std(val['online_means']),
- 'function' : {},
- },
- 'online_duration' : {
- 'goodness' : regression_measures(np.array(val['online_durations']), np.array(val['durations'])),
- 'median' : np.median(val['online_durations']),
- 'mean' : np.mean(val['online_durations']),
- 'std_inner' : np.std(val['online_durations']),
- 'function' : {},
- },
- 'clip' : {
- 'mean' : np.mean(val['clip_rate']),
- 'max' : max(val['clip_rate']),
- },
- 'timeout' : {},
- }
- if 'function' in model['power']:
- aggdata[isa][name]['power']['function'] = {
- 'estimate' : {
- 'fit' : assess_function(model['power']['function']['estimate'],
- name, 'means', parameters, by_param),
- },
- 'user': {
- 'fit' : assess_function(model['power']['function']['user'],
- name, 'means', parameters, by_param),
- },
- }
- if isa == 'transition':
- aggdata[isa][name] = {
- 'duration' : {
- 'goodness' : aggregate_measures(model['duration']['static'], val['durations']),
- 'median' : np.median(val['durations']),
- 'mean' : np.mean(val['durations']),
- 'std_inner' : np.std(val['durations']),
- 'function' : {},
- },
- 'energy' : {
- 'goodness' : aggregate_measures(model['energy']['static'], val['energies']),
- 'median' : np.median(val['energies']),
- 'mean' : np.mean(val['energies']),
- 'std_inner' : np.std(val['energies']),
- 'function' : {},
- },
- 'rel_energy_prev' : {
- 'goodness' : aggregate_measures(model['rel_energy_prev']['static'], val['rel_energies_prev']),
- 'median' : np.median(val['rel_energies_prev']),
- 'mean' : np.mean(val['rel_energies_prev']),
- 'std_inner' : np.std(val['rel_energies_prev']),
- 'function' : {},
- },
- 'rel_energy_next' : {
- 'goodness' : aggregate_measures(model['rel_energy_next']['static'], val['rel_energies_next']),
- 'median' : np.median(val['rel_energies_next']),
- 'mean' : np.mean(val['rel_energies_next']),
- 'std_inner' : np.std(val['rel_energies_next']),
- 'function' : {},
- },
- 'clip' : {
- 'mean' : np.mean(val['clip_rate']),
- 'max' : max(val['clip_rate']),
- },
- 'timeout' : {},
- }
- if 'function' in model['timeout']:
- aggdata[isa][name]['timeout'] = {
- 'median' : np.median(val['timeouts']),
- 'mean' : np.mean(val['timeouts']),
- 'function': {
- 'estimate' : {
- 'fit' : assess_function(model['timeout']['function']['estimate'],
- name, 'timeouts', parameters, by_param),
- },
- 'user': {
- 'fit' : assess_function(model['timeout']['function']['user'],
- name, 'timeouts', parameters, by_param),
- },
- },
- }
- return aggdata
-
def analyze_by_param(aggval, by_param, allvalues, name, key1, key2, param, param_idx):
aggval[key1]['std_by_param'][param] = mean_std_by_param(
by_param, allvalues, name, key2, param_idx)
@@ -1129,9 +1026,7 @@ if 'substates' in opts:
else:
plotter.plot_substate_thresholds(data['model'], by_name)
-if 'validate' in opts:
- data['aggregate'] = validate(by_name, by_param, parameters)
-elif 'crossvalidate' in opts:
+if 'crossvalidate' in opts:
crossvalidate(by_name, by_param, by_trace, data['model'], parameters)
else:
data['aggregate'] = analyze(by_name, by_arg, by_param, by_trace, parameters)