code: def log_basic_info(logger, config):
      logger.info(f"- PyTorch version: {torch.__version__}")
      logger.info(f"- Ignite version: {ignite.__version__}")
      if torch.cuda.is_available():
          # explicitly import cudnn as
          # torch.backends.cudnn can not be pickled with hvd spawning procs
          from torch.backends import cudnn
  
          logger.info(
              f"- GPU Device: {torch.cuda.get_device_name(idist.get_local_rank())}"
          )
          logger.info(f"- CUDA version: {torch.version.cuda}")
          logger.info(f"- CUDNN version: {cudnn.version()}")
  
      logger.info("\n")
      logger.info("Configuration:")
      for key, value in config.items():
          logger.info(f"\t{key}: {value}")
      logger.info("\n")
  
      if idist.get_world_size() > 1:
          logger.info("\nDistributed setting:")
          logger.info(f"\tbackend: {idist.backend()}")
          logger.info(f"\tworld size: {idist.get_world_size()}")
          logger.info("\n")
  
file_path: ignite/examples/references/segmentation/pascal_voc2012/utils.py
imports: import torch
  import ignite
  import ignite.distributed
  from ignite.handlers import DiskSaver
label_desc: Use image node_id 2 for calling a global function with example usage: log_basic_info(logger, config) without return types