code: def forward(
      self,
      hidden_states,
      attention_mask,
      encoder_output=None,
      enc_dec_attn_mask=None,
      rotary_pos_emb=None,
      layer_past=None,
      get_key_value=False,
      set_inference_key_value_memory=False,
      inference_max_sequence_len=None,
      self_attention_relative_position_bias=None,
      cross_attention_relative_position_bias=None,
      checkpoint_core_attention=False,
  ):
      if self.dtype == torch.float32:
          return super().forward(
              hidden_states,
              attention_mask,
              encoder_output,
              enc_dec_attn_mask,
              layer_past,
              get_key_value,
              set_inference_key_value_memory,
              inference_max_sequence_len,
              rotary_pos_emb,
              self_attention_relative_position_bias,
              cross_attention_relative_position_bias,
              checkpoint_core_attention,
          )
      with torch.autocast(device_type="cuda", dtype=self.dtype):
          return super().forward(
              hidden_states,
              attention_mask,
              encoder_output,
              enc_dec_attn_mask,
              layer_past,
              get_key_value,
              set_inference_key_value_memory,
              inference_max_sequence_len,
              rotary_pos_emb,
              self_attention_relative_position_bias,
              cross_attention_relative_position_bias,
              checkpoint_core_attention,
          )
  
imports: from contextlib import nullcontext
  from typing import Any, Callable, Optional
  import torch
  import torch.nn
  from einops import rearrange
  from nemo.collections.common.parts.adapter_modules import LinearAdapterConfig
  from nemo.collections.nlp.modules.common.megatron.adapters.parallel_adapters import AdapterName, ParallelLinearAdapterConfig, ParallelLinearAdapterWeightTyingConfig
  from nemo.collections.nlp.modules.common.megatron.attention import ParallelAttention, ParallelChunkedCrossAttention
  from nemo.collections.nlp.modules.common.megatron.fused_bias_dropout_add import bias_dropout_add, bias_dropout_add_fused_inference, bias_dropout_add_fused_train, dropout_add
  from nemo.collections.nlp.modules.common.megatron.fused_layer_norm import get_layer_norm
  from nemo.collections.nlp.modules.common.megatron.layer_norm_1p import LayerNorm1P, LPLayerNorm
  from nemo.collections.nlp.modules.common.megatron.layer_type import LayerType
  from nemo.collections.nlp.modules.common.megatron.mlp import ParallelMLP, SwitchMLP
  from nemo.collections.nlp.modules.common.megatron.module import MegatronModule
  from nemo.collections.nlp.modules.common.megatron.utils import ApexGuardDefaults
  from nemo.collections.nlp.parts import utils_funcs
  from nemo.core import adapter_mixins
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling the ParallelTransformerLayer obj's underlying member method code with example usage: obj.forward(hidden_states, attention_mask, encoder_output, enc_dec_attn_mask, rotary_pos_emb, layer_past, get_key_value, set_inference_key_value_memory, inference_max_sequence_len, _attention_relative_position_bias, cross_attention_relative_position_bias, checkpoint_core_attention) and returns: super, super