From f797d17a6ec7cd20ec7e88ce288c00ad17b949f8 Mon Sep 17 00:00:00 2001 From: wuyongkang Date: Wed, 1 Jul 2020 15:14:52 +0800 Subject: [PATCH] Optimization for ast_cache --- mindspore/_extends/parse/parser.py | 14 ++------------ mindspore/ccsrc/optimizer/optimizer.h | 2 +- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/mindspore/_extends/parse/parser.py b/mindspore/_extends/parse/parser.py index 30731316e26..a6043eb7879 100644 --- a/mindspore/_extends/parse/parser.py +++ b/mindspore/_extends/parse/parser.py @@ -345,16 +345,6 @@ class Parser: self.function_name = fn.__name__ self.col_offset = 0 - @classmethod - def get_cache(cls, key): - """Get the value of the ast_cache dictionary""" - return cls.ast_cache.get(key) - - @classmethod - def insert_cache(cls, key, value): - """Insert elements to the ast_cache dictionary""" - cls.ast_cache[key] = value - def parse(self): """Parse the function or method.""" logger.debug("fn = %r", self.fn) @@ -362,14 +352,14 @@ class Parser: if isinstance(self.fn, (types.FunctionType, types.MethodType)): original_src = inspect.getsource(self.fn) hexstr = hashlib.sha256(original_src.encode()).hexdigest() - tree = Parser.get_cache(hexstr) + tree = Parser.ast_cache.get(hexstr) if not tree: src = dedent(original_src) self.col_offset = \ len(original_src.split('\n')[0]) - len(src.split('\n')[0]) logger.debug("get source = %s", src) tree = asttokens.ASTTokens(src, parse=True).tree - Parser.insert_cache(hexstr, tree) + Parser.ast_cache[hexstr] = tree else: logger.error("Fn type is invalid") return tree diff --git a/mindspore/ccsrc/optimizer/optimizer.h b/mindspore/ccsrc/optimizer/optimizer.h index 3e77edc1e9c..5f21de43cd9 100644 --- a/mindspore/ccsrc/optimizer/optimizer.h +++ b/mindspore/ccsrc/optimizer/optimizer.h @@ -136,7 +136,7 @@ class Optimizer : public std::enable_shared_from_this { return func_graph; } // Optimizer step counter; - int counter = -1; + int counter = 1; bool changes = true; while (changes) {