code: def train_batch(batch_list, context, network, gluon_trainer):
      
      # Split and load data into multiple GPUs
      data = batch_list[0]
      data = gluon.utils.split_and_load(data, context)
  
      # Split and load label into multiple GPUs
      label = batch_list[1]
      label = gluon.utils.split_and_load(label, context)
  
      # Run the forward and backward pass
      forward_backward(network, data, label)
  
      # Update the parameters
      this_batch_size = batch_list[0].shape[0]
      gluon_trainer.step(this_batch_size)
docs: Training with multiple GPUs
  
      Parameters
      ----------
      batch_list: List
        list of dataset
      context: List
        a list of all GPUs to be used for training
      network:
        ResNet
      gluon_trainer:
        rain module of gluon