docstr: Execute forward propagation
  
  Arguments:
      *inputs: Variable length input list
      **kwargs: variable length keyword arguments
docstr_tok: ["Execute","forward","propagation","Arguments",":","*","inputs",":","Variable","length","input","list","*","*","kwargs",":","variable","length","keyword","arguments"]
code: def forward(self, *inputs, **kwargs):
      """Execute forward propagation
  
      Arguments:
          *inputs: Variable length input list
          **kwargs: variable length keyword arguments
      """
      start = None
      if (
          self.model_profile_enabled
          and get_accelerator().device_name() == "cuda"
          and self._config.enable_cuda_graph
      ):
          get_accelerator().synchronize()
          start = time.time()
  
      if (
          get_accelerator().device_name() == "cuda"
          and self._config.enable_cuda_graph
          and not self.local_cuda_graph
      ):
          if self.cuda_graph_created:
              outputs = self._graph_replay(*inputs, **kwargs)
          else:
              self._create_cuda_graph(*inputs, **kwargs)
              outputs = self._graph_replay(*inputs, **kwargs)
  
      else:
          outputs = self.module(*inputs, **kwargs)
  
      if self.model_profile_enabled and self._config.enable_cuda_graph:
          get_accelerator().synchronize()
          duration = (
              time.time() - start
          ) * 1e3  # convert seconds to ms
          self._model_times.append(duration)
  
      return outputs
  
imports: import torch
  import time
  import os
  from deepspeed import comm
  from deepspeed.utils.logging import log_dist
  from torch.nn.modules import Module
  from packaging import version
  from deepspeed.runtime.checkpoint_engine.torch_checkpoint_engine import TorchCheckpointEngine
  from deepspeed.utils.timer import SynchronizedWallClockTimer
  from ..runtime.state_dict_factory import SDLoaderFactory
  from ..runtime.weight_quantizer import WeightQuantization
  from ..module_inject import replace_transformer_layer, generic_injection
  from ..comm.comm import init_distributed
  from ..pipe import PipelineModule
  from ..moe.utils import has_moe_layers
  from ..module_inject import LinearAllreduce, LinearLayer, Normalize, ReplaceWithTensorSlicing
  from deepspeed.accelerator import get_accelerator
  from ..module_inject.policy import TransformerPolicy
  from ..module_inject.auto_tp import AutoTP
  from ..module_inject.replace_policy import generic_policies
  from ..module_inject.auto_tp_model_utils import build_bloom_alibi_tensor, build_mpt_atten_bias_tensor, build_mpt_alibi_tensor, get_alibi_mask
  from ..ops.transformer.inference.ds_attention import DeepSpeedSelfAttention
  from ..model_implementations.transformers.ds_transformer import DeepSpeedTransformerInference
  from torch import nn
label_desc: Use image node_id 26 for calling the InferenceEngine obj's underlying member method code with example usage: obj.forward() and returns: outputs