in optimum_benchmark/trackers/memory.py [0:0]
def _gpu_memory(self):
child_connection, parent_connection = Pipe()
memory_process = Process(
target=monitor_gpu_vram_memory, args=(self.monitored_pid, self.device_ids, child_connection), daemon=True
)
memory_process.start()
if memory_process.is_alive():
_ = parent_connection.recv()
else:
raise ValueError("Could not start memory tracking process for GPU devices.")
yield from self._cpu_memory()
if memory_process.is_alive():
parent_connection.send(0)
else:
raise ValueError("Could not stop memory tracking process for GPU devices.")
if memory_process.is_alive():
self.max_global_vram_memory = parent_connection.recv()
self.max_process_vram_memory = parent_connection.recv()
else:
raise ValueError("Could not get memory tracking results for GPU devices.")
parent_connection.close()