docstr: Check 2 given index: check they haven't been computed in the source trace.
  Args:
      start_idx(int): start node chunk dim
      start_node(node): start node
      end_idx(int): end node chunk dim
      end_node(node): end node
  
  Returns:
      bool: True if check pass
docstr_tok: ["Check","2","given","index",":","check","they","have","n't","been","computed","in","the","source","trace",".","Args",":","start_idx","(","int",")",":","start","node","chunk","dim","start_node","(","node",")",":","start","node","end_idx","(","int",")",":","end","node","chunk","dim","end_node","(","node",")",":","end","node","Returns",":","bool",":","True","if","check","pass"]
code: def check_index_compute(self, start_idx, end_dim, end_node, end_idx):
      """
      Check 2 given index: check they haven't been computed in the source trace.
      Args:
          start_idx(int): start node chunk dim
          start_node(node): start node
          end_idx(int): end node chunk dim
          end_node(node): end node
  
      Returns:
          bool: True if check pass
      """
      end_node_trace = self.trace_indice._find_trace_from_node(end_node)
      end_node_compute = end_node_trace["compute"][end_dim]
      if any(start_idx <= i <= end_idx for i in end_node_compute):
          return False
      return True
  
file_path: colossalai/colossalai/autochunk/trace_flow.py
imports: from typing import Dict, List, Tuple
  from torch.fx.node import Node
  from .trace_indice import TraceIndice
  from .utils import NodeMgr, find_chunk_all_input_nodes, find_chunk_compute_input_and_output_nodes, find_tensor_shape_node, flat_list, get_node_name, get_node_shape, is_non_compute_node
label_desc: Use image node_id 3 for calling the TraceFlow obj's underlying member method code with example usage: obj.check_index_compute(start_idx, end_dim, end_node, end_idx) and returns: True, False