code: def kernel_supported(module_list):
      policy = []
      for plcy in replace_policies:
          # instantiate a throw-away policy in order to populate the _orig_layer_class
          _ = plcy(None)
          if isinstance(plcy._orig_layer_class, list):
              for orig_layer_class in plcy._orig_layer_class:
                  policy.append(orig_layer_class)
          elif plcy._orig_layer_class is not None:
              policy.append(plcy._orig_layer_class)
      for child in module_list:
          if child.__class__ in policy:
              return True
      return False
  
imports: import re
  from torch import nn
  from .replace_policy import replace_policies
  from typing import Optional
  import torch
  from deepspeed import comm
  from .layers import LinearAllreduce, LinearLayer, LmHeadLinearAllreduce
  from deepspeed.accelerator import get_accelerator
  from .fusedqkv_utils import require_tp_fused_qkvw, prepare_tp_fused_qkvw
  from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list
label_desc: Use image node_id 7 for calling the AutoTP obj's underlying member method code with example usage: obj.kernel_supported(module_list) and returns: False, True