Module: BOAST::MPPAProbe

Extended by:
PrivateStateAccessor
Defined in:
lib/BOAST/Runtime/MPPARuntime.rb

Class Method Summary collapse

Methods included from PrivateStateAccessor

address_size, address_size=, annotate, annotate=, annotate?, annotate_indepth_list, annotate_indepth_list=, annotate_level, annotate_level=, annotate_list, annotate_list=, architecture, architecture=, array_start, array_start=, chain_code, chain_code=, chain_code?, debug, debug=, debug?, debug_source, debug_source=, debug_source?, decl_module, decl_module=, decl_module?, default_align, default_align=, default_int_signed, default_int_signed=, default_int_signed?, default_int_size, default_int_size=, default_real_size, default_real_size=, disable_openmp, disable_openmp=, disable_openmp?, ffi, ffi=, ffi?, fortran_line_length, fortran_line_length=, get_address_size, get_annotate, get_annotate_indepth_list, get_annotate_level, get_annotate_list, get_architecture, get_array_start, get_chain_code, get_debug, get_debug_source, get_decl_module, get_default_align, get_default_int_signed, get_default_int_size, get_default_real_size, get_disable_openmp, get_ffi, get_fortran_line_length, get_indent_increment, get_indent_level, get_keep_temp, get_lang, get_model, get_optimizer_log, get_optimizer_log_file, get_output, get_replace_constants, get_use_vla, get_verbose, indent_increment, indent_increment=, indent_level, indent_level=, keep_temp, keep_temp=, keep_temp?, lang, lang=, model, model=, optimizer_log, optimizer_log=, optimizer_log?, optimizer_log_file, optimizer_log_file=, output, output=, replace_constants, replace_constants=, replace_constants?, set_address_size, set_annotate, set_annotate_indepth_list, set_annotate_level, set_annotate_list, set_architecture, set_array_start, set_chain_code, set_debug, set_debug_source, set_decl_module, set_default_align, set_default_int_signed, set_default_int_size, set_default_real_size, set_disable_openmp, set_ffi, set_fortran_line_length, set_indent_increment, set_indent_level, set_keep_temp, set_lang, set_model, set_optimizer_log, set_optimizer_log_file, set_output, set_replace_constants, set_use_vla, set_verbose, use_vla, use_vla=, use_vla?, verbose, verbose=, verbose?

Class Method Details

.computeObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 37

def compute
  get_output.print <<EOF
  mppa_mon_measure_stop(_mppa_ctx, &_mppa_report);
  _mppa_avg_pwr = 0;
  _mppa_energy = 0;
  for(_mppa_i=0; _mppa_i < _mppa_report->count; _mppa_i++){
_mppa_avg_pwr += _mppa_report->measures[_mppa_i].avg_power;
_mppa_energy += _mppa_report->measures[_mppa_i].total_energy;
  }
  _mppa_avg_pwr = _mppa_avg_pwr/(float) _mppa_report->count;
  _mppa_duration = _mppa_report->total_time;
  mppa_mon_measure_free_report(_mppa_report);
  mppa_mon_close(_mppa_ctx);
  rb_hash_aset(_boast_stats,ID2SYM(rb_intern("mppa_avg_pwr")),rb_float_new(_mppa_avg_pwr));
  rb_hash_aset(_boast_stats,ID2SYM(rb_intern("mppa_energy")),rb_float_new(_mppa_energy));
  rb_hash_aset(_boast_stats,ID2SYM(rb_intern("mppa_duration")), rb_float_new(_mppa_duration));
EOF
end

.configureObject



28
29
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 28

def configure
end

.declObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 14

def decl
  get_output.print <<EOF
  float _mppa_avg_pwr;
  float _mppa_energy;
  float _mppa_duration;
  mppa_mon_ctx_t * _mppa_ctx;
  mppa_mon_sensor_t _mppa_pwr_sensor[] = {MPPA_MON_PWR_MPPA0};
  mppa_mon_measure_report_t * _mppa_report;
  mppa_mon_open(0, &_mppa_ctx);
  mppa_mon_measure_set_sensors(_mppa_ctx, _mppa_pwr_sensor, 1);
  mppa_mon_measure_start(_mppa_ctx);
EOF
end

.headerObject

Monitoring has to be started before transfer begin and after transfers end as we don’t have sync points in between.



10
11
12
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 10

def header
  get_output.puts "#include <mppa_mon.h>"
end

.startObject



31
32
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 31

def start
end

.stopObject



34
35
# File 'lib/BOAST/Runtime/MPPARuntime.rb', line 34

def stop
end