/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/runtime
NameSizeModeActions
argument_spec.h168960644editdlrm
autodiff.h39930644editdlrm
calculate_necessary_args.h21000644editdlrm
custom_operator.h10790644editdlrm
exception_message.h6390644editdlrm
graph_executor.h44770644editdlrm
graph_executor_impl.h39020644editdlrm
graph_iterator.h49630644editdlrm
instruction.h38940644editdlrm
interpreter.h50810644editdlrm
jit_exception.h2700644editdlrm
logging.h26180644editdlrm
operator.h90600644editdlrm
operator_options.h1890644editdlrm
print_handler.h3400644editdlrm
profiling_graph_executor_impl.h20360644editdlrm
profiling_record.h89620644editdlrm
register_ops_utils.h437940644editdlrm
script_profile.h25320644editdlrm
slice_indices_adjust.h8210644editdlrm
symbolic_script.h5980644editdlrm
symbolic_shape_registry.h4250644editdlrm
vararg_functions.h10230644editdlrm
variable_tensor_list.h5450644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/runtime/graph_executor.h (4477B)
#pragma once #include #include #include #include #include #include #include C10_DECLARE_bool(torch_jit_enable_new_executor); namespace torch { namespace jit { struct GraphExecutorState; struct Code; struct ExecutionPlan { ExecutionPlan() = default; ExecutionPlan( std::shared_ptr graph, std::string function_name, size_t remaining_bailout_depth = 0) : code(graph, std::move(function_name), remaining_bailout_depth), graph(std::move(graph)) {} operator bool() const { return static_cast(graph); } Code code; std::shared_ptr graph; }; // Notice that those structs don't manage lifetime of their members. // They is only valid only right after you call getDebugState() and should never // be used again once another GraphExecutor function is called. // NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init) struct GraphExecutorState { const Graph* graph = nullptr; ExecutionPlan fallback; // XXX: members of this field are optional std::unordered_map execution_plans; }; struct TORCH_API EnableProfilingGuard { EnableProfilingGuard(); ~EnableProfilingGuard(); private: bool old_executor_mode = false; bool old_profiling_mode = false; }; struct GraphExecutorImplBase; struct TORCH_API GraphExecutor { GraphExecutor() = default; GraphExecutor(const std::shared_ptr& graph, std::string function_name); void run(Stack& inputs); c10::intrusive_ptr runAsync( Stack& stack, TaskLauncher taskLauncher = at::launch); // `remaining_bailout_depth` stands for the maximum number of profiled and // specialized recompilations allowed for the current `GraphExecutor`. if // remaining_bailout_depth is equal to 0, `GraphExecutor` won't perform any // profiling and specialization. This is also equivalent to the // SIMPLE_EXECUTOR mode. if remaining_bailout_depth is greater than 0, // `GraphExecutor` will profile and specialize its input graph based on the // profiled information whenever a bailout check is failed/triggered, a new // `GraphExecutor` will be created. This new `GraphExecutor`'s // remaining_bailout_depth will be reduced by 1. const ExecutionPlan& getPlanFor( Stack& inputs, size_t remaining_bailout_depth); explicit operator bool() const { return pImpl != nullptr; } void reset() { pImpl.reset(); } std::shared_ptr graph() const; GraphExecutorState getDebugState(); static size_t getDefaultNumBailOuts(); void debugFlushCompilationCache(); private: std::shared_ptr pImpl; }; TORCH_API Node* replaceBlockWithFallbackGraph( Block* b, ArrayRef inputs); // These passes need to run before it is valid to pass to the interpreter // regardless of whether sizes have been specialized or not. TORCH_API void runRequiredPasses(const std::shared_ptr& g); TORCH_API void debugSetFusionGroupInlining(bool state); TORCH_API bool getFusionGroupInlining(); TORCH_API void debugSetAutodiffSubgraphInlining(bool state); TORCH_API std::shared_ptr lastExecutedOptimizedGraph(); TORCH_API std::atomic& getProfilingMode(); TORCH_API std::atomic& getExecutorMode(); TORCH_API std::atomic& getNumProfiledRuns(); TORCH_API std::atomic& getBailoutDepth(); TORCH_API bool IsNewExecutorEnabled(); struct TORCH_API GraphOptimizerEnabledGuard { GraphOptimizerEnabledGuard(bool state) : old_state_(getGraphExecutorOptimize()) { setGraphExecutorOptimize(state); } ~GraphOptimizerEnabledGuard() { setGraphExecutorOptimize(old_state_); } bool old_state_; }; namespace detail { GraphExecutor* getGradExecutor(Operation& op); GraphExecutor* getDifferentiableGraphOpExecutor(Operation& op); // for debugging information we expose a way to get the last actually // run graph. Previous approaches allowed querying the GraphExecutor // for what graph it would run in certain circumstances (graphFor), but // this is fragile because we sometimes change how these decisions are made. // This interface still allows our tests to look at optimized graphs, but // with less plumbing. } // namespace detail } // namespace jit } // namespace torch