1 #include <torch/csrc/profiler/orchestration/python_tracer.h> 2 3 namespace torch { 4 namespace profiler { 5 namespace impl { 6 namespace python_tracer { 7 namespace { 8 MakeFn make_fn; 9 10 struct NoOpPythonTracer : public PythonTracerBase { 11 NoOpPythonTracer() = default; 12 ~NoOpPythonTracer() override = default; 13 stoptorch::profiler::impl::python_tracer::__anond8f1d9e10111::NoOpPythonTracer14 void stop() override {} restarttorch::profiler::impl::python_tracer::__anond8f1d9e10111::NoOpPythonTracer15 void restart() override {} getEventstorch::profiler::impl::python_tracer::__anond8f1d9e10111::NoOpPythonTracer16 std::vector<std::shared_ptr<Result>> getEvents( 17 std::function<c10::time_t(c10::approx_time_t)>, 18 std::vector<CompressedEvent>&, 19 c10::time_t) override { 20 return {}; 21 } 22 }; 23 } // namespace 24 registerTracer(MakeFn make_tracer)25void registerTracer(MakeFn make_tracer) { 26 make_fn = make_tracer; 27 } 28 make(RecordQueue * queue)29std::unique_ptr<PythonTracerBase> PythonTracerBase::make(RecordQueue* queue) { 30 if (make_fn == nullptr) { 31 return std::make_unique<NoOpPythonTracer>(); 32 } 33 return make_fn(queue); 34 } 35 } // namespace python_tracer 36 } // namespace impl 37 } // namespace profiler 38 } // namespace torch 39