intel-extension-for-pytorch
65 строк · 2.6 Кб
1import unittest2from common_utils import VerboseTestCase3import subprocess4
5
6class TestLinearReorder(VerboseTestCase):7def test_linear_reorder(self):8with subprocess.Popen(9"DNNL_VERBOSE=1 python -u linear_reorder.py",10shell=True,11stdout=subprocess.PIPE,12stderr=subprocess.STDOUT,13) as p:14segmentation = {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 fail28seg = None29for line in p.stdout.readlines():30line = str(line, "utf-8").strip()31if line.endswith("***************"):32seg = line.strip().split(",")[0]33continue34# Following is to check if there is the reorder number is as excepted35if self.is_dnnl_verbose(line) and self.ReorderForPack(line):36segmentation[seg]["reorder_for_pack"] -= 137self.assertTrue(38segmentation[seg]["reorder_for_pack"] >= 0,39"show unexpected reorder for pack",40)41
42if self.is_dnnl_verbose(line) and self.OnlyReorderDtype(line):43segmentation[seg]["reorder_for_dtype"] -= 144self.assertTrue(45segmentation[seg]["reorder_for_dtype"] >= 0,46"show unexpected reorder for dtype",47)48
49if self.is_dnnl_verbose(line) and self.OnlyReorderFormat(line):50segmentation[seg]["reorder_for_format"] -= 151self.assertTrue(52segmentation[seg]["reorder_for_format"] >= 0,53"show unexpected reorder for format",54)55
56if self.is_dnnl_verbose(line) and self.RedundantReorder(line):57segmentation[seg]["redundent_reorder"] -= 158self.assertTrue(59segmentation[seg]["redundent_reorder"] >= 0,60"show unexpected redundent reorder",61)62
63
64if __name__ == "__main__":65test = unittest.main()66