# tensorplay.profiler API Source: https://www.tensorplay.cn/docs/api/tensorplay.profiler.html ## Functions 4 [#](#api-tensorplay.profiler.merge_distributed_traces) ### merge_distributed_traces function[Full reference ↗](/docs/generated/tensorplay.profiler.merge_distributed_traces.html) ```python tensorplay.profiler.merge_distributed_traces(paths, out_path) ``` Merge per-process trace files into one trace document. [#](#api-tensorplay.profiler.schedule) ### schedule function[Full reference ↗](/docs/generated/tensorplay.profiler.schedule.html) ```python tensorplay.profiler.schedule(*, wait: int, warmup: int, active: int, repeat: int = 0, skip_first: int = 0, skip_first_wait: int = 0) ``` Build a callable that maps step numbers to profiler actions. [#](#api-tensorplay.profiler.supported_activities) ### supported_activities function[Full reference ↗](/docs/generated/tensorplay.profiler.supported_activities.html) ```python tensorplay.profiler.supported_activities() ``` Return activity groups available in this build. [#](#api-tensorplay.profiler.tensorboard_trace_handler) ### tensorboard_trace_handler function[Full reference ↗](/docs/generated/tensorplay.profiler.tensorboard_trace_handler.html) ```python tensorplay.profiler.tensorboard_trace_handler(directory, worker_name=None, use_gzip=False) ``` Create a callback that writes one trace file per completed cycle. ## Classes 10 [#](#api-tensorplay.profiler.emit_itt) ### emit_itt class[Full reference ↗](/docs/generated/tensorplay.profiler.emit_itt.html) ```python class tensorplay.profiler.emit_itt(enabled=True, record_shapes=False) ``` Emit instrumentation ranges for active operations. [#](#api-tensorplay.profiler.emit_nvtx) ### emit_nvtx class[Full reference ↗](/docs/generated/tensorplay.profiler.emit_nvtx.html) ```python class tensorplay.profiler.emit_nvtx(enabled=True, record_shapes=False) ``` Emit named ranges for active operations. [#](#api-tensorplay.profiler.EventList) ### EventList class[Full reference ↗](/docs/generated/tensorplay.profiler.EventList.html) ```python class tensorplay.profiler.EventList(raw=(), base_ns=0, gpu_activities=None, mem_events=None, samples=None, with_stack=False) ``` Raw profiler events with analysis and export helpers. ```python copy() ``` Return a shallow copy of the list. ```python count(value, /) ``` Return number of occurrences of value. ```python device_kernels(sort_by=None) ``` What the device ran, by the name the device knows it by. Separate from the per-operation view because a kernel is not an operation: work this project’s own code launches belongs to whatever operation happened to be in flight, and naming it is the only way to find out it ran at all. ```python property device_time_by_span ``` For each collected span, the device time of the work inside it. Kept alongside the events because the two answer different questions: a span’s own event says how long the span took on the host, and this says how long the device was busy for it, which for a span that only encloses work is the whole of what was being asked. ```python index(value, start=0, stop=9223372036854775807, /) ``` Return first index of value. Raises ValueError if the value is not present. ```python pop(index=-1, /) ``` Remove and return item at index (default last). Raises IndexError if list is empty or index is out of range. ```python remove(value, /) ``` Remove first occurrence of value. Raises ValueError if the value is not present. ```python reverse() ``` Reverse IN PLACE. ```python sort(*, key=None, reverse=False) ``` Sort the list in ascending order and return None. The sort is in-place (i.e. the list itself is modified) and stable (i.e. the order of two equal elements is maintained). If a key function is given, apply it once to each list item and sort them, ascending or descending, according to their function values. The reverse flag can be set to sort in descending order. [#](#api-tensorplay.profiler.FunctionEvent) ### FunctionEvent class[Full reference ↗](/docs/generated/tensorplay.profiler.FunctionEvent.html) ```python class tensorplay.profiler.FunctionEvent(event, self_ns=0, self_cuda_us=0.0, children=(), device_us=None) ``` Read-only object view over one collected event tuple. ```python property device_time_total ``` Device time for this span and for the work dispatched inside it. The span’s own device time when it dispatched any, and otherwise the sum over what it encloses; a span that did both is both, because a caller asking what a region cost is asking about the region and not about the one call inside it that happened to be the timed one. An annotation around a piece of work dispatches nothing itself, so for the span whose time is actually wanted this is the whole answer rather than zero. [#](#api-tensorplay.profiler.FunctionEventAvg) ### FunctionEventAvg class[Full reference ↗](/docs/generated/tensorplay.profiler.FunctionEventAvg.html) ```python class tensorplay.profiler.FunctionEventAvg(name, kind, count, avg_ns, min_ns, max_ns, shapes, self_ns=0, self_pct=0.0, cuda_us=0.0, kernel_count=0, self_cuda_us=0.0, stack=None, flops=0) ``` Aggregated statistics for one event group. [#](#api-tensorplay.profiler.Interval) ### Interval class[Full reference ↗](/docs/generated/tensorplay.profiler.Interval.html) ```python class tensorplay.profiler.Interval(start: float, end: float) ``` An interval expressed in microseconds. [#](#api-tensorplay.profiler.profile) ### profile class[Full reference ↗](/docs/generated/tensorplay.profiler.profile.html) ```python class tensorplay.profiler.profile(enabled=True, *, activities=None, schedule=None, on_trace_ready=None, record_shapes=False, profile_memory=False, with_stack=False, with_flops=False, with_modules=False, use_device=None, gpu_timing=None, gpu_trace=None, with_samples=False) ``` Context manager that records dispatched operations and annotations. ```python device_kernels(sort_by=None) ``` What the device ran, by the name the device knows it by. ```python property device_time_by_span ``` For each collected span, the device time of the work inside it. The per-span answer, for a caller that has a span and wants what it cost on the device rather than what it cost to ask for. ```python kineto_results() ``` The device’s own record of what it did, in a form meant to be read. Named for what it is rather than for how it was collected: a caller wants the device’s work, wants to know which piece of it belongs to which operation, and wants the two joined by something exact. What the collector gathered is exactly that, so it is handed over as records that answer those questions, and the join is already made rather than left to the caller to reconstruct. ```python step() ``` Advance the configured step schedule. [#](#api-tensorplay.profiler.ProfilerAction) ### ProfilerAction class[Full reference ↗](/docs/generated/tensorplay.profiler.ProfilerAction.html) ```python class tensorplay.profiler.ProfilerAction(*values) ``` Action selected for one profiler step. ```python capitalize() ``` Return a capitalized version of the string. More specifically, make the first character have upper case and the rest lower case. ```python casefold() ``` Return a version of the string suitable for caseless comparisons. ```python center(width, fillchar=' ', /) ``` Return a centered string of length width. Padding is done using the specified fill character (default is a space). ```python count(sub[, start[, end]]) → int ``` Return the number of non-overlapping occurrences of substring sub in string S[start:end]. Optional arguments start and end are interpreted as in slice notation. ```python encode(encoding='utf-8', errors='strict') ``` Encode the string using the codec registered for encoding. encoding The encoding in which to encode the string. errors The error handling scheme to use for encoding errors. The default is ‘strict’ meaning that encoding errors raise a UnicodeEncodeError. Other possible values are ‘ignore’, ‘replace’ and ‘xmlcharrefreplace’ as well as any other name registered with codecs.register_error that can handle UnicodeEncodeErrors. ```python endswith(suffix[, start[, end]]) → bool ``` Return True if S ends with the specified suffix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. suffix can also be a tuple of strings to try. ```python expandtabs(tabsize=8) ``` Return a copy where all tab characters are expanded using spaces. If tabsize is not given, a tab size of 8 characters is assumed. ```python find(sub[, start[, end]]) → int ``` Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. ```python format(*args, **kwargs) → str ``` Return a formatted version of S, using substitutions from args and kwargs. The substitutions are identified by braces (‘{’ and ‘}’). ```python format_map(mapping) → str ``` Return a formatted version of S, using substitutions from mapping. The substitutions are identified by braces (‘{’ and ‘}’). ```python index(sub[, start[, end]]) → int ``` Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Raises ValueError when the substring is not found. ```python isalnum() ``` Return True if the string is an alpha-numeric string, False otherwise. A string is alpha-numeric if all characters in the string are alpha-numeric and there is at least one character in the string. ```python isalpha() ``` Return True if the string is an alphabetic string, False otherwise. A string is alphabetic if all characters in the string are alphabetic and there is at least one character in the string. ```python isascii() ``` Return True if all characters in the string are ASCII, False otherwise. ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too. ```python isdecimal() ``` Return True if the string is a decimal string, False otherwise. A string is a decimal string if all characters in the string are decimal and there is at least one character in the string. ```python isdigit() ``` Return True if the string is a digit string, False otherwise. A string is a digit string if all characters in the string are digits and there is at least one character in the string. ```python isidentifier() ``` Return True if the string is a valid Python identifier, False otherwise. Call keyword.iskeyword(s) to test whether string s is a reserved identifier, such as “def” or “class”. ```python islower() ``` Return True if the string is a lowercase string, False otherwise. A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string. ```python isnumeric() ``` Return True if the string is a numeric string, False otherwise. A string is numeric if all characters in the string are numeric and there is at least one character in the string. ```python isprintable() ``` Return True if all characters in the string are printable, False otherwise. A character is printable if repr() may use it in its output. ```python isspace() ``` Return True if the string is a whitespace string, False otherwise. A string is whitespace if all characters in the string are whitespace and there is at least one character in the string. ```python istitle() ``` Return True if the string is a title-cased string, False otherwise. In a title-cased string, upper- and title-case characters may only follow uncased characters and lowercase characters only cased ones. ```python isupper() ``` Return True if the string is an uppercase string, False otherwise. A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string. ```python join(iterable, /) ``` Concatenate any number of strings. The string whose method is called is inserted in between each given string. The result is returned as a new string. Example: ‘.’.join([‘ab’, ‘pq’, ‘rs’]) -> ‘ab.pq.rs’ ```python ljust(width, fillchar=' ', /) ``` Return a left-justified string of length width. Padding is done using the specified fill character (default is a space). ```python lower() ``` Return a copy of the string converted to lowercase. ```python lstrip(chars=None, /) ``` Return a copy of the string with leading whitespace removed. If chars is given and not None, remove characters in chars instead. ```python static maketrans() ``` Return a translation table usable for str.translate(). If there is only one argument, it must be a dictionary mapping Unicode ordinals (integers) or characters to Unicode ordinals, strings or None. Character keys will be then converted to ordinals. If there are two arguments, they must be strings of equal length, and in the resulting dictionary, each character in x will be mapped to the character at the same position in y. If there is a third argument, it must be a string, whose characters will be mapped to None in the result. ```python partition(sep, /) ``` Partition the string into three parts using the given separator. This will search for the separator in the string. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it. If the separator is not found, returns a 3-tuple containing the original string and two empty strings. ```python removeprefix(prefix, /) ``` Return a str with the given prefix string removed if present. If the string starts with the prefix string, return string[len(prefix):]. Otherwise, return a copy of the original string. ```python removesuffix(suffix, /) ``` Return a str with the given suffix string removed if present. If the string ends with the suffix string and that suffix is not empty, return string[:-len(suffix)]. Otherwise, return a copy of the original string. ```python replace(old, new, count=-1, /) ``` Return a copy with all occurrences of substring old replaced by new. count Maximum number of occurrences to replace. -1 (the default value) means replace all occurrences. If the optional argument count is given, only the first count occurrences are replaced. ```python rfind(sub[, start[, end]]) → int ``` Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. ```python rindex(sub[, start[, end]]) → int ``` Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Raises ValueError when the substring is not found. ```python rjust(width, fillchar=' ', /) ``` Return a right-justified string of length width. Padding is done using the specified fill character (default is a space). ```python rpartition(sep, /) ``` Partition the string into three parts using the given separator. This will search for the separator in the string, starting at the end. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it. If the separator is not found, returns a 3-tuple containing two empty strings and the original string. ```python rsplit(sep=None, maxsplit=-1) ``` Return a list of the substrings in the string, using sep as the separator string. sep The separator used to split the string. When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result. maxsplit Maximum number of splits. -1 (the default value) means no limit. Splitting starts at the end of the string and works to the front. ```python rstrip(chars=None, /) ``` Return a copy of the string with trailing whitespace removed. If chars is given and not None, remove characters in chars instead. ```python split(sep=None, maxsplit=-1) ``` Return a list of the substrings in the string, using sep as the separator string. sep The separator used to split the string. When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result. maxsplit Maximum number of splits. -1 (the default value) means no limit. Splitting starts at the front of the string and works to the end. Note, str.split() is mainly useful for data that has been intentionally delimited. With natural text that includes punctuation, consider using the regular expression module. ```python splitlines(keepends=False) ``` Return a list of the lines in the string, breaking at line boundaries. Line breaks are not included in the resulting list unless keepends is given and true. ```python startswith(prefix[, start[, end]]) → bool ``` Return True if S starts with the specified prefix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. prefix can also be a tuple of strings to try. ```python strip(chars=None, /) ``` Return a copy of the string with leading and trailing whitespace removed. If chars is given and not None, remove characters in chars instead. ```python swapcase() ``` Convert uppercase characters to lowercase and lowercase characters to uppercase. ```python title() ``` Return a version of the string where each word is titlecased. More specifically, words start with uppercased characters and all remaining cased characters have lower case. ```python translate(table, /) ``` Replace each character in the string using the given translation table. table Translation table, which must be a mapping of Unicode ordinals to Unicode ordinals, strings, or None. The table must implement lookup/indexing via __getitem__, for instance a dictionary or list. If this operation raises LookupError, the character is left untouched. Characters mapped to None are deleted. ```python upper() ``` Return a copy of the string converted to uppercase. ```python zfill(width, /) ``` Pad a numeric string with zeros on the left, to fill a field of the given width. The string is never truncated. [#](#api-tensorplay.profiler.ProfilerActivity) ### ProfilerActivity class[Full reference ↗](/docs/generated/tensorplay.profiler.ProfilerActivity.html) ```python class tensorplay.profiler.ProfilerActivity(*values) ``` Activity groups understood by the profiler. ```python capitalize() ``` Return a capitalized version of the string. More specifically, make the first character have upper case and the rest lower case. ```python casefold() ``` Return a version of the string suitable for caseless comparisons. ```python center(width, fillchar=' ', /) ``` Return a centered string of length width. Padding is done using the specified fill character (default is a space). ```python count(sub[, start[, end]]) → int ``` Return the number of non-overlapping occurrences of substring sub in string S[start:end]. Optional arguments start and end are interpreted as in slice notation. ```python encode(encoding='utf-8', errors='strict') ``` Encode the string using the codec registered for encoding. encoding The encoding in which to encode the string. errors The error handling scheme to use for encoding errors. The default is ‘strict’ meaning that encoding errors raise a UnicodeEncodeError. Other possible values are ‘ignore’, ‘replace’ and ‘xmlcharrefreplace’ as well as any other name registered with codecs.register_error that can handle UnicodeEncodeErrors. ```python endswith(suffix[, start[, end]]) → bool ``` Return True if S ends with the specified suffix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. suffix can also be a tuple of strings to try. ```python expandtabs(tabsize=8) ``` Return a copy where all tab characters are expanded using spaces. If tabsize is not given, a tab size of 8 characters is assumed. ```python find(sub[, start[, end]]) → int ``` Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. ```python format(*args, **kwargs) → str ``` Return a formatted version of S, using substitutions from args and kwargs. The substitutions are identified by braces (‘{’ and ‘}’). ```python format_map(mapping) → str ``` Return a formatted version of S, using substitutions from mapping. The substitutions are identified by braces (‘{’ and ‘}’). ```python index(sub[, start[, end]]) → int ``` Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Raises ValueError when the substring is not found. ```python isalnum() ``` Return True if the string is an alpha-numeric string, False otherwise. A string is alpha-numeric if all characters in the string are alpha-numeric and there is at least one character in the string. ```python isalpha() ``` Return True if the string is an alphabetic string, False otherwise. A string is alphabetic if all characters in the string are alphabetic and there is at least one character in the string. ```python isascii() ``` Return True if all characters in the string are ASCII, False otherwise. ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too. ```python isdecimal() ``` Return True if the string is a decimal string, False otherwise. A string is a decimal string if all characters in the string are decimal and there is at least one character in the string. ```python isdigit() ``` Return True if the string is a digit string, False otherwise. A string is a digit string if all characters in the string are digits and there is at least one character in the string. ```python isidentifier() ``` Return True if the string is a valid Python identifier, False otherwise. Call keyword.iskeyword(s) to test whether string s is a reserved identifier, such as “def” or “class”. ```python islower() ``` Return True if the string is a lowercase string, False otherwise. A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string. ```python isnumeric() ``` Return True if the string is a numeric string, False otherwise. A string is numeric if all characters in the string are numeric and there is at least one character in the string. ```python isprintable() ``` Return True if all characters in the string are printable, False otherwise. A character is printable if repr() may use it in its output. ```python isspace() ``` Return True if the string is a whitespace string, False otherwise. A string is whitespace if all characters in the string are whitespace and there is at least one character in the string. ```python istitle() ``` Return True if the string is a title-cased string, False otherwise. In a title-cased string, upper- and title-case characters may only follow uncased characters and lowercase characters only cased ones. ```python isupper() ``` Return True if the string is an uppercase string, False otherwise. A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string. ```python join(iterable, /) ``` Concatenate any number of strings. The string whose method is called is inserted in between each given string. The result is returned as a new string. Example: ‘.’.join([‘ab’, ‘pq’, ‘rs’]) -> ‘ab.pq.rs’ ```python ljust(width, fillchar=' ', /) ``` Return a left-justified string of length width. Padding is done using the specified fill character (default is a space). ```python lower() ``` Return a copy of the string converted to lowercase. ```python lstrip(chars=None, /) ``` Return a copy of the string with leading whitespace removed. If chars is given and not None, remove characters in chars instead. ```python static maketrans() ``` Return a translation table usable for str.translate(). If there is only one argument, it must be a dictionary mapping Unicode ordinals (integers) or characters to Unicode ordinals, strings or None. Character keys will be then converted to ordinals. If there are two arguments, they must be strings of equal length, and in the resulting dictionary, each character in x will be mapped to the character at the same position in y. If there is a third argument, it must be a string, whose characters will be mapped to None in the result. ```python partition(sep, /) ``` Partition the string into three parts using the given separator. This will search for the separator in the string. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it. If the separator is not found, returns a 3-tuple containing the original string and two empty strings. ```python removeprefix(prefix, /) ``` Return a str with the given prefix string removed if present. If the string starts with the prefix string, return string[len(prefix):]. Otherwise, return a copy of the original string. ```python removesuffix(suffix, /) ``` Return a str with the given suffix string removed if present. If the string ends with the suffix string and that suffix is not empty, return string[:-len(suffix)]. Otherwise, return a copy of the original string. ```python replace(old, new, count=-1, /) ``` Return a copy with all occurrences of substring old replaced by new. count Maximum number of occurrences to replace. -1 (the default value) means replace all occurrences. If the optional argument count is given, only the first count occurrences are replaced. ```python rfind(sub[, start[, end]]) → int ``` Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. ```python rindex(sub[, start[, end]]) → int ``` Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Raises ValueError when the substring is not found. ```python rjust(width, fillchar=' ', /) ``` Return a right-justified string of length width. Padding is done using the specified fill character (default is a space). ```python rpartition(sep, /) ``` Partition the string into three parts using the given separator. This will search for the separator in the string, starting at the end. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it. If the separator is not found, returns a 3-tuple containing two empty strings and the original string. ```python rsplit(sep=None, maxsplit=-1) ``` Return a list of the substrings in the string, using sep as the separator string. sep The separator used to split the string. When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result. maxsplit Maximum number of splits. -1 (the default value) means no limit. Splitting starts at the end of the string and works to the front. ```python rstrip(chars=None, /) ``` Return a copy of the string with trailing whitespace removed. If chars is given and not None, remove characters in chars instead. ```python split(sep=None, maxsplit=-1) ``` Return a list of the substrings in the string, using sep as the separator string. sep The separator used to split the string. When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result. maxsplit Maximum number of splits. -1 (the default value) means no limit. Splitting starts at the front of the string and works to the end. Note, str.split() is mainly useful for data that has been intentionally delimited. With natural text that includes punctuation, consider using the regular expression module. ```python splitlines(keepends=False) ``` Return a list of the lines in the string, breaking at line boundaries. Line breaks are not included in the resulting list unless keepends is given and true. ```python startswith(prefix[, start[, end]]) → bool ``` Return True if S starts with the specified prefix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. prefix can also be a tuple of strings to try. ```python strip(chars=None, /) ``` Return a copy of the string with leading and trailing whitespace removed. If chars is given and not None, remove characters in chars instead. ```python swapcase() ``` Convert uppercase characters to lowercase and lowercase characters to uppercase. ```python title() ``` Return a version of the string where each word is titlecased. More specifically, words start with uppercased characters and all remaining cased characters have lower case. ```python translate(table, /) ``` Replace each character in the string using the given translation table. table Translation table, which must be a mapping of Unicode ordinals to Unicode ordinals, strings, or None. The table must implement lookup/indexing via __getitem__, for instance a dictionary or list. If this operation raises LookupError, the character is left untouched. Characters mapped to None are deleted. ```python upper() ``` Return a copy of the string converted to uppercase. ```python zfill(width, /) ``` Pad a numeric string with zeros on the left, to fill a field of the given width. The string is never truncated. [#](#api-tensorplay.profiler.record_function) ### record_function class[Full reference ↗](/docs/generated/tensorplay.profiler.record_function.html) ```python class tensorplay.profiler.record_function(name, args=None) ``` Mark a user-defined span in the active profiling session.