Skip to content

[Cherry-Pick / Deprecate API] add deprecated decorator for paddle.utils.profiler #50134

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 48 additions & 16 deletions python/paddle/utils/profiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,27 @@
from ..fluid.profiler import profiler # noqa: F401
from ..fluid.profiler import stop_profiler
from ..fluid.profiler import reset_profiler

__all__ = [ #noqa
'Profiler', 'get_profiler', 'ProfilerOptions', 'cuda_profiler',
'start_profiler', 'profiler', 'stop_profiler', 'reset_profiler'
from .deprecated import deprecated

__all__ = [ # noqa
'Profiler',
'get_profiler',
'ProfilerOptions',
'cuda_profiler',
'start_profiler',
'profiler',
'stop_profiler',
'reset_profiler',
]


@deprecated(
since="2.4.2",
update_to="paddle.profiler.Profiler",
level=1,
reason="Please use new profiler tool, this profiler tool is no longer maintained.",
)
class ProfilerOptions(object):

def __init__(self, options=None):
self.options = {
'state': 'All',
Expand All @@ -41,7 +53,7 @@ def __init__(self, options=None):
'output_thread_detail': False,
'profile_path': 'none',
'timeline_path': 'none',
'op_summary_path': 'none'
'op_summary_path': 'none',
}
if options is not None:
for key in self.options.keys():
Expand All @@ -56,10 +68,13 @@ def with_state(self, state):
def __getitem__(self, name):
if self.options.get(name, None) is None:
raise ValueError(
"ProfilerOptions does not have an option named %s." % name)
"ProfilerOptions does not have an option named %s." % name
)
else:
if isinstance(self.options[name],
str) and self.options[name] == 'none':
if (
isinstance(self.options[name], str)
and self.options[name] == 'none'
):
return None
else:
return self.options[name]
Expand All @@ -68,8 +83,13 @@ def __getitem__(self, name):
_current_profiler = None


@deprecated(
since="2.4.2",
update_to="paddle.profiler.Profiler",
level=1,
reason="Please use new profiler tool, this profiler tool is no longer maintained.",
)
class Profiler(object):

def __init__(self, enabled=True, options=None):
if options is not None:
self.profiler_options = options
Expand Down Expand Up @@ -101,22 +121,28 @@ def start(self):
try:
start_profiler(
state=self.profiler_options['state'],
tracer_option=self.profiler_options['tracer_level'])
tracer_option=self.profiler_options['tracer_level'],
)
except Exception as e:
warnings.warn(
"Profiler is not enabled becuase following exception:\n{}".
format(e))
"Profiler is not enabled becuase following exception:\n{}".format(
e
)
)

def stop(self):
if self.enabled:
try:
stop_profiler(
sorted_key=self.profiler_options['sorted_key'],
profile_path=self.profiler_options['profile_path'])
profile_path=self.profiler_options['profile_path'],
)
except Exception as e:
warnings.warn(
"Profiler is not disabled becuase following exception:\n{}".
format(e))
"Profiler is not disabled becuase following exception:\n{}".format(
e
)
)

def reset(self):
if self.enabled and core.is_profiler_enabled():
Expand All @@ -137,6 +163,12 @@ def record_step(self, change_profiler_status=True):
self.stop()


@deprecated(
since="2.4.2",
update_to="paddle.profiler.Profiler",
level=1,
reason="Please use new profiler tool, this profiler tool is no longer maintained.",
)
def get_profiler():
global _current_profiler
if _current_profiler is None:
Expand Down