code: def test_multi_gpu_trainable(module):
      m = importlib.import_module(module)
      ngpu = 2
      device_ids = list(range(ngpu))
      args = make_arg()
      model = m.E2E(40, 5, args)
      if "pytorch" in module:
          model = torch.nn.DataParallel(model, device_ids)
          batch = prepare_inputs("pytorch", is_cuda=True)
          model.cuda()
          loss = 1.0 / ngpu * model(*batch)
          loss.backward(loss.new_ones(ngpu))  # trainable
      else:
          raise NotImplementedError
  
imports: from __future__ import division
  import argparse
  import importlib
  import os
  import tempfile
  from test.utils_test import make_dummy_json_st
  import chainer
  import numpy
  import pytest
  import torch
  from espnet.nets.pytorch_backend.nets_utils import pad_list
  from espnet.utils.training.batchfy import make_batchset
label_desc: Use image node_id 17 for calling a global function with example usage: test_multi_gpu_trainable(module) without return types