intel-extension-for-pytorch

Форк
0
/
test_linear_reorder.py 
65 строк · 2.6 Кб
1
import unittest
2
from common_utils import VerboseTestCase
3
import subprocess
4

5

6
class TestLinearReorder(VerboseTestCase):
7
    def test_linear_reorder(self):
8
        with subprocess.Popen(
9
            "DNNL_VERBOSE=1 python -u linear_reorder.py",
10
            shell=True,
11
            stdout=subprocess.PIPE,
12
            stderr=subprocess.STDOUT,
13
        ) as p:
14
            segmentation = {
15
                "fp32": {
16
                    "reorder_for_pack": 2,
17
                    "reorder_for_dtype": 0,
18
                    "reorder_for_format": 0,
19
                    "redundent_reorder": 0,
20
                },
21
                "bf16": {
22
                    "reorder_for_pack": 3,
23
                    "reorder_for_dtype": 0,
24
                    "reorder_for_format": 0,
25
                    "redundent_reorder": 0,
26
                },
27
            }  # there should be only reorders on prepack, if any other reorder appears, will cause fail
28
            seg = None
29
            for line in p.stdout.readlines():
30
                line = str(line, "utf-8").strip()
31
                if line.endswith("***************"):
32
                    seg = line.strip().split(",")[0]
33
                    continue
34
                # Following is to check if there is the reorder number is as excepted
35
                if self.is_dnnl_verbose(line) and self.ReorderForPack(line):
36
                    segmentation[seg]["reorder_for_pack"] -= 1
37
                    self.assertTrue(
38
                        segmentation[seg]["reorder_for_pack"] >= 0,
39
                        "show unexpected reorder for pack",
40
                    )
41

42
                if self.is_dnnl_verbose(line) and self.OnlyReorderDtype(line):
43
                    segmentation[seg]["reorder_for_dtype"] -= 1
44
                    self.assertTrue(
45
                        segmentation[seg]["reorder_for_dtype"] >= 0,
46
                        "show unexpected reorder for dtype",
47
                    )
48

49
                if self.is_dnnl_verbose(line) and self.OnlyReorderFormat(line):
50
                    segmentation[seg]["reorder_for_format"] -= 1
51
                    self.assertTrue(
52
                        segmentation[seg]["reorder_for_format"] >= 0,
53
                        "show unexpected reorder for format",
54
                    )
55

56
                if self.is_dnnl_verbose(line) and self.RedundantReorder(line):
57
                    segmentation[seg]["redundent_reorder"] -= 1
58
                    self.assertTrue(
59
                        segmentation[seg]["redundent_reorder"] >= 0,
60
                        "show unexpected redundent reorder",
61
                    )
62

63

64
if __name__ == "__main__":
65
    test = unittest.main()
66

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.