code: def _new_gpu_test_session(check_router_cleaned):  # pragma: no cover
      from .deploy.oscar.tests.session import new_test_session
      from .resource import cuda_count
  
      cuda_devices = list(range(min(cuda_count(), 2)))
  
      sess = new_test_session(
          address="127.0.0.1",
          backend=MARS_CI_BACKEND,
          init_local=True,
          n_worker=1,
          n_cpu=1,
          cuda_devices=cuda_devices,
          default=True,
          timeout=300,
      )
      with option_context({"show_progress": False}):
          try:
              yield sess
          finally:
              sess.stop_server(isolation=False)
              Router.set_instance(None)
  
imports: import concurrent.futures
  import os
  import subprocess
  import psutil
  import pytest
  from mars.config import option_context
  from mars.core.mode import is_kernel_mode, is_build_mode
  from mars.lib.aio.lru import clear_all_alru_caches
  from mars.oscar.backends.router import Router
  from mars.oscar.backends.ray.communication import RayServer
  from mars.utils import lazy_import
label_desc: Use image node_id 14 for calling a global function with example usage: _new_gpu_test_session(check_router_cleaned) without return types