code: def train_batch(batch_list, context, network, gluon_trainer):
      """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
      """
      # 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)
  
file_path: mxnet/example/distributed_training/cifar10_dist.py
imports: from __future__ import print_function
  import sys
  import random
  import numpy
  import mxnet
  from mxnet import autograd, gluon, kv, nd
  from mxnet.gluon.model_zoo import vision
label_desc: Use image node_id 4 for calling a global function with example usage: train_batch(batch_list, context, network, gluon_trainer) without return types