code: def test_concatenate_large_different_devices(self):
      arrs = []
      for i in range(10):
          with cuda.Device(i % 2):
              arrs.append(cupy.empty((2, 3, 4)))
      if cuda.runtime.deviceCanAccessPeer(0, 1) == 1:
          with pytest.warns(cupy._util.PerformanceWarning):
              cupy.concatenate(arrs)
      else:
          with pytest.raises(ValueError):
              cupy.concatenate(arrs)
  
imports: import numpy
  import pytest
  import cupy
  from cupy import testing
  from cupy import cuda
label_desc: Use image node_id 12 for calling the TestJoin obj's underlying member method code with example usage: obj.test_concatenate_large_different_devices() without return types