Skip to content

Commit 32c3d8a

Browse files
committed
Change PMTObserver to perform initialization inside register_device instead of __init__
1 parent 3c0e6c6 commit 32c3d8a

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

kernel_tuner/observers/pmt.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,23 @@ def __init__(self, observable=None, use_continuous_observer=False, continuous_du
5959
else:
6060
# User specifices a string (single platform) as observable
6161
observable = {observable: None}
62+
6263
supported = ["powersensor2", "powersensor3", "nvidia", "likwid", "rapl", "rocm", "xilinx"]
6364
for obs in observable.keys():
6465
if not obs in supported:
6566
raise ValueError(f"Observable {obs} not in supported: {supported}")
66-
67-
self.pms = [pmt.create(obs[0], obs[1]) for obs in observable.items()]
68-
self.pm_names = list(observable.keys())
69-
70-
self.begin_states = [None] * len(self.pms)
67+
68+
self.observable = observable
69+
self.use_continuous_observer = use_continuous_observer
70+
self.continuous_duration = continuous_duration
71+
72+
def register_device(self, dev):
73+
self.pm_names = list(self.observable.keys())
74+
self.pms = [pmt.create(obs[0], obs[1]) for obs in self.observable.items()]
7175
self.initialize_results(self.pm_names)
7276

73-
if use_continuous_observer:
74-
self.continuous_observer = PMTContinuousObserver("pmt", [], self, continuous_duration=continuous_duration)
77+
if self.use_continuous_observer:
78+
self.continuous_observer = PMTContinuousObserver("pmt", [], self, continuous_duration=self.continuous_duration)
7579

7680
def initialize_results(self, pm_names):
7781
self.results = dict()
@@ -86,6 +90,7 @@ def after_start(self):
8690

8791
def after_finish(self):
8892
end_states = [pm.read() for pm in self.pms]
93+
8994
for i in range(len(self.pms)):
9095
begin_state = self.begin_states[i]
9196
end_state = end_states[i]

0 commit comments

Comments
 (0)