diff --git a/src/plugins/intel_cpu/tools/commit_slider/utils/cfg.json b/src/plugins/intel_cpu/tools/commit_slider/utils/cfg.json index 18f2db370fb65b..24aa3c4be0ff73 100644 --- a/src/plugins/intel_cpu/tools/commit_slider/utils/cfg.json +++ b/src/plugins/intel_cpu/tools/commit_slider/utils/cfg.json @@ -17,7 +17,8 @@ "map_builder" : "printMap", "log_parser" : "logParser", "break_validator": "breakValidator", - "e2e_preparator": "getWheelMap" + "e2e_preparator": "getWheelMap", + "replace": "replacePreprocess" }, "extendBuildCommand" : false, "commandList" : [ diff --git a/src/plugins/intel_cpu/tools/commit_slider/utils/helpers.py b/src/plugins/intel_cpu/tools/commit_slider/utils/helpers.py index c444b5bb63f071..7a7261a6da8182 100644 --- a/src/plugins/intel_cpu/tools/commit_slider/utils/helpers.py +++ b/src/plugins/intel_cpu/tools/commit_slider/utils/helpers.py @@ -137,21 +137,23 @@ def getBlobDiff(file1, file2): content = file.readlines() with open(file2) as sampleFile: sampleContent = sampleFile.readlines() - # ignore first line with memory address - i = -1 curMaxDiff = 0 - for sampleLine in sampleContent: - i = i + 1 + for i, sampleLine in enumerate(sampleContent): + if i == 0: + # ignore first line with memory address + continue if i >= len(sampleContent): break line = content[i] + if "nan" in sampleLine.lower() or "nan" in line.lower(): + # todo: test value + return 1000 + import sys + return sys.float_info.max sampleVal = 0 val = 0 - try: - sampleVal = float(sampleLine) - val = float(line) - except ValueError: - continue + sampleVal = float(sampleLine) + val = float(line) if val != sampleVal: curMaxDiff = max(curMaxDiff, abs(val - sampleVal)) return curMaxDiff @@ -588,9 +590,13 @@ def safeClearDir(path, cfg): def runUtility(cfg, args): modName = args.utility + fullModName = "utils.{un}".format(un=modName) try: - mod = importlib.import_module( - "utils.{un}".format(un=modName)) + if importlib.util.find_spec(fullModName) is not None: + mod = importlib.import_module(fullModName) + else: + mod = importlib.import_module( + "utils.preprocess.{un}".format(un=modName)) utilName = checkAndGetUtilityByName(cfg, modName) utility = getattr(mod, utilName) utility(args) diff --git a/src/plugins/intel_cpu/tools/commit_slider/utils/preprocess/replace.py b/src/plugins/intel_cpu/tools/commit_slider/utils/preprocess/replace.py index c6c39af64167b5..b5d516e058c001 100644 --- a/src/plugins/intel_cpu/tools/commit_slider/utils/preprocess/replace.py +++ b/src/plugins/intel_cpu/tools/commit_slider/utils/preprocess/replace.py @@ -1,12 +1,33 @@ import re import fileinput +import os +from utils.helpers import CfgError - -def replace(cfg, commit): +def replace(cfg, commit=None): prepCfg = cfg["runConfig"]["preprocess"] filePath = prepCfg["file"] + curDir = os.path.abspath(os.path.join( + os.path.dirname(__file__), "../../../../../../../")) + filePath = os.path.join(curDir, filePath) pattern = prepCfg["pattern"] replacement = '' + if "replacement" in prepCfg: + replacement = prepCfg["replacement"] for line in fileinput.input(filePath, inplace=True): newLine = re.sub(pattern, r'{}'.format(replacement), line, flags=0) print(newLine, end='') + +# example: python3 -m commit_slider -u replace -file src/plugins/intel_cpu/src/graph.cpp -pattern "\!node->isDynamicNode\(\)\ &&\ \!node->isExecutable\(\)\ &&\ \!node->isInPlace\(\)" -replacement "false" +def replacePreprocess(args): + argDict = vars(args) + if "-file" not in argDict: + raise CfgError("No 'file' for replace-pp provided") + if "-pattern" not in argDict: + raise CfgError("No 'pattern' for replace-pp provided") + + tmpCfg = { "runConfig": { "preprocess" : { + "file" : argDict["-file"], + "pattern" : argDict["-pattern"], + "replacement" : argDict["-replacement"] if "-replacement" in argDict else '' + }}} + replace(tmpCfg)