File: check_memory_compression_ratio.py

package info (click to toggle)
pytorch-cuda 2.6.0%2Bdfsg-7
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 161,620 kB
  • sloc: python: 1,278,832; cpp: 900,322; ansic: 82,710; asm: 7,754; java: 3,363; sh: 2,811; javascript: 2,443; makefile: 597; ruby: 195; xml: 84; objc: 68
file content (57 lines) | stat: -rw-r--r-- 1,601 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import argparse
import sys
import textwrap

import pandas as pd


def main(args):
    actual = pd.read_csv(args.actual)
    expected = pd.read_csv(args.expected)
    failed = []

    for name in actual["name"]:
        actual_memory_compression = float(
            actual.loc[actual["name"] == name]["compression_ratio"]
        )
        try:
            expected_memory_compression = float(
                expected.loc[expected["name"] == name]["compression_ratio"]
            )
        except TypeError:
            print(f"{name:34} is missing from {args.expected}")
            continue
        if actual_memory_compression >= expected_memory_compression * 0.95:
            status = "PASS"
        else:
            status = "FAIL"
            failed.append(name)
        print(
            f"""
            {name:34}:
                actual_memory_compression={actual_memory_compression:.2f},
                expected_memory_compression={expected_memory_compression:.2f},
                {status}
            """
        )

    if failed:
        print(
            textwrap.dedent(
                f"""
                Error: {len(failed)} models below expected memory compression ratio:
                    {' '.join(failed)}
                If this drop is expected, you can update `{args.expected}`.
                """
            )
        )
        sys.exit(1)


parser = argparse.ArgumentParser()
parser.add_argument("--actual", type=str, required=True)
parser.add_argument("--expected", type=str, required=True)
args = parser.parse_args()

if __name__ == "__main__":
    main(args)