Defined in File operator_node.h
This class is a nested type of Class GraphExecutable.
operator execution environment
When GraphExecutable::execute() is called, it should add tasks into the ExecEnv. The tasks added to ExecEnv would be invoked by a scheduler to perform actual computing.
Operator code usually only calls dispatch_on_comp_node()
Note: The ExecEnv class exists as an abstraction layer for controlling asynchronous kernel dispatching behavior. CUDA has a limited task queue so we have to use a dedicated CPU thread for each CUDA stream (it can be treated as a blocking queue). But for CPU we have our own unlimited dispatch queue so the ExecEnv can be synchonous.
add a task to the queue corresponding to given comp node
like dispatch_on_comp_node, but with specific mask other than current opr mask
pause execution on all threads if there are async dispatch threads
This is currently only used by memory defragmenter.
resume execution (cancel previous pause_exec())