1

我有一台带有两个不同 GPU(一个 RTX 和一个 Titan V)的机器,它经常无法运行任务。这种行为主要在 id=1 的 GPU 中观察到。

相同的任务可以在 id=0 的不同机器或 GPU 上成功运行。

精确的堆栈如下:

  File "cupy/core/core.pyx", line 1689, in cupy.core.core.ndarray.__setitem__
  File "cupy/core/core.pyx", line 3598, in cupy.core.core._scatter_op
  File "cupy/core/_kernel.pyx", line 828, in cupy.core._kernel.ufunc.__call__
  File "cupy/util.pyx", line 48, in cupy.util.memoize.decorator.ret
  File "cupy/core/_kernel.pyx", line 617, in cupy.core._kernel._get_ufunc_kernel
  File "cupy/core/_kernel.pyx", line 51, in cupy.core._kernel._get_simple_elementwise_kernel
  File "cupy/core/carray.pxi", line 164, in cupy.core.core.compile_with_cache
  File "[miniconda]/envs/[env_name]/lib/python3.5/site-packages/cupy/cuda/compiler.py", line 161, in compile_with_cache
    mod.load(cubin)
  File "cupy/cuda/function.pyx", line 181, in cupy.cuda.function.Module.load
  File "cupy/cuda/function.pyx", line 183, in cupy.cuda.function.Module.load
  File "cupy/cuda/driver.pyx", line 185, in cupy.cuda.driver.moduleLoadData
  File "cupy/cuda/driver.pyx", line 81, in cupy.cuda.driver.check_status
cupy.cuda.driver.CUDADriverError: CUDA_ERROR_INVALID_SOURCE: device kernel image is invalid

我的设置如下:

chainer                   5.2.0                     <pip>
chainercv                 0.12.0                    <pip>
cupy-cuda100              5.2.0                     <pip>

chainer 5.3 中也出现了同样的问题(我从头开始创建了一个新的 conda 环境)。

我相信这在某种程度上与多线程有关,但我找不到如何在 cupy 中将其关闭或如何完全避免该问题。

一些可能不相关的信息:这是一个相当随机的过程。在 GPU id=1 中,十分之八的情况下,它无法运行并出现上述错误。

有任何想法吗?

4

0 回答 0