code: def SyncMultiGPUTrainer(gpus):
      """
      Return a default multi-GPU trainer, if you don't care about the details.
      It may not be the most efficient one for your task.
  
      Args:
          gpus (list[int]): list of GPU ids.
      """
      return SyncMultiGPUTrainerParameterServer(gpus, ps_device="cpu")
  
imports: import multiprocessing
  import os
  import sys
  import tensorflow
  from tensorpack.compat import tfv1
  from ..callbacks import CallbackFactory, RunOp
  from ..graph_builder.distributed import DistributedParameterServerBuilder, DistributedReplicatedBuilder
  from ..graph_builder.training import AsyncMultiGPUBuilder, SyncMultiGPUParameterServerBuilder, SyncMultiGPUReplicatedBuilder
  from ..graph_builder.utils import override_to_local_variable
  from ..input_source import FeedfreeInput, QueueInput
  from ..tfutils import get_global_step_var
  from ..tfutils.common import get_tf_version_tuple
  from ..tfutils.distributed import get_distributed_session_creator
  from ..tfutils.sesscreate import NewSessionCreator
  from ..tfutils.tower import TrainTowerContext
  from ..utils import logger
  from ..utils.argtools import map_arg
  from ..utils.develop import HIDE_DOC, deprecated
  from .tower import SingleCostTrainer
label_desc: Use image node_id 2 for calling a global function with example usage: SyncMultiGPUTrainer(gpus) and returns: SyncMultiGPUTrainerParameterServer