我有一台带有两个不同 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 中,十分之八的情况下,它无法运行并出现上述错误。
有任何想法吗?