MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / Advisor

Class Advisor

tensorflow/core/profiler/internal/advisor/tfprof_advisor.h:30–76  ·  view source on GitHub ↗

The Advisor runs a list of Checkers, each checks a specific area.

Source from the content-addressed store, hash-verified

28
29// The Advisor runs a list of Checkers, each checks a specific area.
30class Advisor {
31 public:
32 Advisor(const TFStats* stats) : stats_(stats) {}
33
34 static AdvisorOptionsProto DefaultOptions() {
35 AdvisorOptionsProto options;
36 std::vector<string> checkers(
37 kCheckers, kCheckers + sizeof(kCheckers) / sizeof(*kCheckers));
38 for (const string& checker : checkers) {
39 (*options.mutable_checkers())[checker];
40 }
41 return options;
42 }
43
44 AdviceProto Advise(const AdvisorOptionsProto& options) {
45 // Note: Release a checker's memory ASAP.
46 AdviceProto ret = RunInternalCheckers(options, stats_);
47
48 if (options.checkers().find(kCheckers[0]) != options.checkers().end()) {
49 AcceleratorUtilizationChecker au_checker;
50 (*ret.mutable_checkers())[kCheckers[0]].MergeFrom(
51 au_checker.Run(options.checkers().at(kCheckers[0]), stats_));
52 }
53 if (options.checkers().find(kCheckers[1]) != options.checkers().end()) {
54 OperationChecker op_checker;
55 (*ret.mutable_checkers())[kCheckers[1]].MergeFrom(
56 op_checker.Run(options.checkers().at(kCheckers[1]), stats_));
57 }
58 if (options.checkers().find(kCheckers[2]) != options.checkers().end()) {
59 ExpensiveOperationChecker expensive_op_checker;
60 (*ret.mutable_checkers())[kCheckers[2]].MergeFrom(
61 expensive_op_checker.Run(options.checkers().at(kCheckers[2]),
62 stats_));
63 }
64 for (const auto& checker : ret.checkers()) {
65 fprintf(stdout, "\n%s:\n", checker.first.c_str());
66 for (const string& r : checker.second.reports()) {
67 fprintf(stdout, "%s\n", r.c_str());
68 }
69 }
70 fflush(stdout);
71 return ret;
72 }
73
74 private:
75 const TFStats* stats_;
76};
77
78} // namespace tfprof
79} // namespace tensorflow

Callers 2

RunFunction · 0.85
RunProfileFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected