code: def test_LRU_cache11(self):
      # test if collectively deleting a multi-GPU plan works
      _skip_multi_gpu_bug((128,), self.gpus)
      cache0 = self.caches[0]
      cache1 = self.caches[1]
  
      # ensure a fresh state
      assert cache0.get_curr_size() == 0 <= cache0.get_size()
      assert cache1.get_curr_size() == 0 <= cache1.get_size()
  
      # do a multi-GPU FFT
      c = testing.shaped_random((128,), cupy, cupy.complex64)
      cupy.fft.fft(c)
      assert cache0.get_curr_size() == 1 <= cache0.get_size()
      assert cache1.get_curr_size() == 1 <= cache1.get_size()
  
      node0 = next(iter(cache0))[1]
      node1 = next(iter(cache1))[1]
      assert node0.key == node1.key
      assert node0.plan is node1.plan
      assert cache0.get_curr_memsize() == node0.memsize > 0
      assert cache1.get_curr_memsize() == node1.memsize > 0
  
      # delete
      del cache0[node0.key]
      assert cache0.get_curr_size() == 0 <= cache0.get_size()
      assert cache1.get_curr_size() == 0 <= cache1.get_size()
      assert cache0.get_curr_memsize() == 0
      assert cache1.get_curr_memsize() == 0
  
imports: import contextlib
  import io
  import queue
  import threading
  import unittest
  import pytest
  import cupy
  from cupy import testing
  from cupy.cuda import cufft
  from cupy.cuda import device
  from cupy.cuda import runtime
  from cupy.fft import config
  from .test_fft import multi_gpu_config, _skip_multi_gpu_bug
label_desc: Use image node_id 13 for calling the TestPlanCache obj's underlying member method code with example usage: obj.test_LRU_cache11() without return types