code: def _link_all_hp_params(self):
      dp_world_size = dist.get_world_size(group=self.dp_process_group)
      for i, _ in enumerate(self.optimizer.param_groups):
          # Link bf16 and fp32 params in partition
          partition_id = dist.get_rank(
              group=self.real_dp_process_group[i]
          )
          partition_size = (
              self.bf16_groups_flat[i].numel() // dp_world_size
          )
          flat_hp_partition = self.fp32_groups_flat_partition[i]
          link_hp_params(
              lp_param_list=self.bf16_groups[i],
              flat_hp_partition=flat_hp_partition,
              partition_start=partition_id * partition_size,
              partition_size=partition_size,
              partition_optimizer_state=self.optimizer.state[
                  flat_hp_partition
              ],
              dp_group=self.real_dp_process_group[i],
          )
  
imports: from collections import OrderedDict
  import torch
  import sys
  import os
  from deepspeed import comm
  from deepspeed.runtime.constants import PIPE_REPLICATED
  from deepspeed.ops.op_builder import UtilsBuilder
  from deepspeed.runtime import ZeROOptimizer
  from packaging import version
  from deepspeed.git_version_info import version
  from deepspeed.runtime.utils import get_global_norm_of_tensors, clip_tensors_by_global_norm, DummyOptim, align_dense_tensors, all_gather_dp_groups, bwc_tensor_model_parallel_rank, is_model_parallel_parameter, see_memory_usage
  from deepspeed.utils import link_hp_params, fragment_address
  from deepspeed.checkpoint import enable_universal_checkpoint
  from deepspeed.checkpoint.constants import DS_VERSION, PARTITION_COUNT, BASE_OPTIMIZER_STATE, SINGLE_PARTITION_OF_FP32_GROUPS, CLIP_GRAD, GROUP_PADDINGS, PARAM_SLICE_MAPPINGS
label_desc: Use image node_id 5 for calling the BF16_Optimizer obj's underlying member method code with example usage: obj._link_all_hp_params() without return types