def aggregate_across_processes()

in optimum_benchmark/benchmark/report.py [0:0]


    def aggregate_across_processes(measurements: List["TargetMeasurements"]) -> "TargetMeasurements":
        assert len(measurements) > 0, "No measurements to aggregate"

        m0 = measurements[0]

        memory = Memory.aggregate_across_processes([m.memory for m in measurements]) if m0.memory is not None else None
        latency = (
            Latency.aggregate_across_processes([m.latency for m in measurements]) if m0.latency is not None else None
        )
        throughput = (
            Throughput.aggregate_across_processes([m.throughput for m in measurements])
            if m0.throughput is not None
            else None
        )
        energy = Energy.aggregate_across_processes([m.energy for m in measurements]) if m0.energy is not None else None
        efficiency = (
            Efficiency.aggregate_across_processes([m.efficiency for m in measurements])
            if m0.efficiency is not None
            else None
        )

        return TargetMeasurements(
            memory=memory, latency=latency, throughput=throughput, energy=energy, efficiency=efficiency
        )