/usr/local/lib64/python3.6/site-packages/torch/include/caffe2/core
NameSizeModeActions
allocator.h1360644editdlrm
blob.h41680644editdlrm
blob_serialization.h107910644editdlrm
blob_serializer_base.h39050644editdlrm
blob_stats.h11270644editdlrm
common.h43290644editdlrm
common_cudnn.h98930644editdlrm
common_gpu.h214140644editdlrm
common_omp.h1560644editdlrm
context.h61740644editdlrm
context_base.h43820644editdlrm
context_gpu.h110140644editdlrm
cudnn_wrappers.h69560644editdlrm
db.h93520644editdlrm
distributions_stubs.h21610644editdlrm
event.h124200644editdlrm
event_cpu.h11920644editdlrm
export_c10_op_to_caffe2.h94870644editdlrm
export_caffe2_op_to_c10.h111010644editdlrm
flags.h740644editdlrm
graph.h52580644editdlrm
init.h64960644editdlrm
logging.h750644editdlrm
macros.h34260644editdlrm
memonger.h8170644editdlrm
module.h24730644editdlrm
net.h46340644editdlrm
net_async_base.h73970644editdlrm
net_async_scheduling.h9930644editdlrm
net_async_task.h8330644editdlrm
net_async_task_future.h19250644editdlrm
net_async_task_graph.h22530644editdlrm
net_async_tracing.h50930644editdlrm
net_dag_utils.h21460644editdlrm
net_parallel.h21440644editdlrm
net_simple.h26060644editdlrm
net_simple_refcount.h20970644editdlrm
numa.h720644editdlrm
observer.h38090644editdlrm
operator.h588720644editdlrm
operator_gradient.h102220644editdlrm
operator_schema.h184770644editdlrm
plan_executor.h2190644editdlrm
prof_dag_counters.h27510644editdlrm
qtensor.h66150644editdlrm
qtensor_serialization.h26240644editdlrm
scope_guard.h46750644editdlrm
static_tracepoint.h3980644editdlrm
static_tracepoint_elfx86.h55550644editdlrm
stats.h103650644editdlrm
storage.h7330644editdlrm
tensor.h186680644editdlrm
tensor_impl.h3510644editdlrm
tensor_int8.h4500644editdlrm
test_utils.h62850644editdlrm
timer.h12180644editdlrm
transform.h57410644editdlrm
types.h22480644editdlrm
workspace.h113050644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/caffe2/core/prof_dag_counters.h (2751B)
#ifndef PROF_DAG_COUNTERS_H #define PROF_DAG_COUNTERS_H #include "caffe2/core/common.h" #include "caffe2/core/logging.h" #include "caffe2/core/timer.h" #include "caffe2/proto/caffe2_pb.h" #include "caffe2/proto/prof_dag.pb.h" #include namespace caffe2 { class ProfDAGStats { public: ProfDAGStats() : sum_(0.0), sqrsum_(0.0), cnt_(0) {} explicit ProfDAGStats(float time_ms) : sum_(time_ms), sqrsum_(time_ms * time_ms), cnt_(1) {} ProfDAGStats& operator+=(const ProfDAGStats& rhs) { sum_ += rhs.sum_; sqrsum_ += rhs.sqrsum_; cnt_ += rhs.cnt_; return *this; } std::pair computeMoments() const { CAFFE_ENFORCE_GT(cnt_, 0U); float mean = sum_ / cnt_; float stddev = std::sqrt(std::abs(sqrsum_ / cnt_ - mean * mean)); return {mean, stddev}; } float sum() const { return sum_; } float sqrsum() const { return sqrsum_; } size_t cnt() const { return cnt_; } private: float sum_; float sqrsum_; size_t cnt_; }; class ProfDAGReport { public: friend class ProfDAGCounters; // Collects the execution time per each operator type ProfDAGProtos GetOperatorStats() const; // Collects the execution time of each operator, the output is // formatted as a map: (netName__opIndex__opType, cost) ProfDAGProtos GetPerOperatorCost() const; ProfDAGReport& operator+=(const ProfDAGReport& rhs); void PrintStats(); private: ProfDAGProto statsProto( const std::string& name, const ProfDAGStats& stats, const std::vector& op_extra_info) const; bool hasStats() const; std::vector op_types_; std::vector> op_extra_info_; std::string net_name_; int num_runs_; // Cumulative stats per operator instance of the net std::vector time_per_op_total_; // Cumulative stats per unique operator type CaffeMap time_per_op_type_total_; CaffeMap times_per_run_per_type_total_; ProfDAGStats runtime_stats_; }; /** * A simple wrapper around prof_dag's counters */ class ProfDAGCounters { public: explicit ProfDAGCounters(const std::shared_ptr& net_def); // ReportRunStart/End are called at the beginning and at the end of // each net's run void ReportRunStart(); void ReportRunEnd(); void AddPerOpStartTime(size_t op_id); void AddPerOpEndTime(size_t op_id); void AddPerOpAsyncEndTime(size_t op_id); ProfDAGReport GetReport() const; private: Timer timer_; std::vector op_start_times_run_; std::vector op_end_times_run_; std::vector op_async_end_times_run_; ProfDAGReport report_; }; } // namespace caffe2 #endif