1 #include <ittnotify.h> 2 #include <torch/csrc/itt_wrapper.h> 3 #include <torch/csrc/profiler/stubs/base.h> 4 5 namespace torch::profiler { 6 __itt_domain* _itt_domain = __itt_domain_create("PyTorch"); 7 itt_is_available()8bool itt_is_available() { 9 return torch::profiler::impl::ittStubs()->enabled(); 10 } 11 itt_range_push(const char * msg)12void itt_range_push(const char* msg) { 13 __itt_string_handle* hsMsg = __itt_string_handle_create(msg); 14 __itt_task_begin(_itt_domain, __itt_null, __itt_null, hsMsg); 15 } 16 itt_range_pop()17void itt_range_pop() { 18 __itt_task_end(_itt_domain); 19 } 20 itt_mark(const char * msg)21void itt_mark(const char* msg) { 22 __itt_string_handle* hsMsg = __itt_string_handle_create(msg); 23 __itt_task_begin(_itt_domain, __itt_null, __itt_null, hsMsg); 24 __itt_task_end(_itt_domain); 25 } 26 } // namespace torch::profiler 27