code: def _check_for_nccl_backend(group):
      pg = group or dist.distributed_c10d._get_default_group()
      # It is not expected for PG to be wrapped many times, but support it just
      # in case
      while isinstance(pg, _ProcessGroupWrapper):
          pg = pg.wrapped_pg
  
      return dist.is_nccl_available() and isinstance(
          pg, dist.ProcessGroupNCCL
      )
  
file_path: fastNLP/fastNLP/core/drivers/torch_driver/dist_utils.py
imports: import io
  import pickle
  import os
  from typing import Any, List
  from fastNLP.envs.imports import _TORCH_GREATER_EQUAL_1_8
  from fastNLP.core.utils.torch_utils import DEFAULT_TORCH_GROUP
  from fastNLP.envs.imports import _NEED_IMPORT_TORCH
  from fastNLP.envs.env import FASTNLP_NO_SYNC
  from fastNLP.core.utils import apply_to_collection
label_desc: Use image node_id 9 for calling a global function with example usage: _check_for_nccl_backend(group) and returns: unknown