# profile Source: https://www.tensorplay.cn/docs/generated/tensorplay.profiler.profiler.profile.html ```python class tensorplay.profiler.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. ```python table(sort_by=None, row_limit=100, header=None, max_src_column_width=75, max_name_column_width=55, max_shapes_column_width=80, top_level_events_only=False, time_unit=None) ``` Render the session’s spans, one row per span. Every span gets a row rather than one row per name, so the per-span captures the session holds – the shapes an operation was given, the frames it was called from, the memory it allocated – can be printed against the span they describe. key_averages() is the aggregated view of the same recording.