tvm
|
Data collected from a profiling run. Includes per-call metrics and per-device metrics. More...
#include <profiling.h>
Public Member Functions | |
String | AsCSV () const |
Output calls in CSV format. More... | |
String | AsTable (bool sort=true, bool aggregate=true, bool compute_col_sums=true) const |
Create a human readable table of profiling metrics. More... | |
String | AsJSON () const |
Convert this report to JSON. More... | |
TVM_DECLARE_FINAL_OBJECT_INFO (ReportNode, Object) | |
![]() | |
uint32_t | type_index () const |
std::string | GetTypeKey () const |
size_t | GetTypeKeyHash () const |
template<typename TargetType > | |
bool | IsInstance () const |
bool | unique () const |
Object () | |
Object (const Object &other) | |
Object (Object &&other) | |
Object & | operator= (const Object &other) |
Object & | operator= (Object &&other) |
Public Attributes | |
Array< Map< String, ObjectRef > > | calls |
A list of function calls and the metrics recorded for that call. More... | |
Map< String, Map< String, ObjectRef > > | device_metrics |
Metrics collected for the entire run of the model on a per-device basis. More... | |
Map< String, ObjectRef > | configuration |
Static Public Attributes | |
static constexpr const char * | _type_key = "runtime.profiling.Report" |
![]() | |
static constexpr const char * | _type_key = "runtime.Object" |
static constexpr bool | _type_final = false |
static constexpr uint32_t | _type_child_slots = 0 |
static constexpr bool | _type_child_slots_can_overflow = true |
static constexpr bool | _type_has_method_visit_attrs = true |
static constexpr bool | _type_has_method_sequal_reduce = false |
static constexpr bool | _type_has_method_shash_reduce = false |
static constexpr uint32_t | _type_index = TypeIndex::kDynamic |
Additional Inherited Members | |
![]() | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
![]() | |
static std::string | TypeIndex2Key (uint32_t tindex) |
Get the type key of the corresponding index from runtime. More... | |
static size_t | TypeIndex2KeyHash (uint32_t tindex) |
Get the type key hash of the corresponding index from runtime. More... | |
static uint32_t | TypeKey2Index (const std::string &key) |
Get the type index of the corresponding key from runtime. More... | |
static uint32_t | _GetOrAllocRuntimeTypeIndex () |
static uint32_t | RuntimeTypeIndex () |
![]() | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
![]() | |
static uint32_t | GetOrAllocRuntimeTypeIndex (const std::string &key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow) |
Get the type index using type key. More... | |
![]() | |
uint32_t | type_index_ {0} |
Type index(tag) that indicates the type of the object. More... | |
RefCounterType | ref_counter_ {0} |
The internal reference counter. More... | |
FDeleter | deleter_ = nullptr |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly. More... | |
Data collected from a profiling run. Includes per-call metrics and per-device metrics.
String tvm::runtime::profiling::ReportNode::AsCSV | ( | ) | const |
Output calls
in CSV format.
Note that this does not include device_metrics
, it only includes per-call metrics.
String tvm::runtime::profiling::ReportNode::AsJSON | ( | ) | const |
Convert this report to JSON.
Output JSON will be of this format:
String tvm::runtime::profiling::ReportNode::AsTable | ( | bool | sort = true , |
bool | aggregate = true , |
||
bool | compute_col_sums = true |
||
) | const |
Create a human readable table of profiling metrics.
aggregate | Whether or not to join multiple calls to the same op into a single line. |
sort | Whether or not to sort call frames by descending duration. If false and if aggregate is false, frames will be sorted by order of appearance in the program. Order is undefined if sort is false and aggregate is true. |
compute_col_sums | Whether or not to include sum totals for the Count, Duation, and Percent columns. |
tvm::runtime::profiling::ReportNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | ReportNode | , |
Object | |||
) |
|
staticconstexpr |
A list of function calls and the metrics recorded for that call.
Each element is a mapping from metric name to value. Some metrics that appear in every call are "Name" (the function name), "Argument Shapes", and "Duration (us)". Values are one of String
, PercentNode
, DurationNode
, or CountNode
.
Configuration used for this profiling run. Includes number of threads, executor.
Values must be an object type that can be used with device_metrics.
Metrics collected for the entire run of the model on a per-device basis.
device_metrics
is indexed by device name then metric.
These metrics may be larger than the sum of the same metric in calls
because these metrics include the overhead of the executor.