RuntimeError: CUDA error: the launch timed out and was terminated
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
【报错翻译】
运行时错误:CUDA错误:启动超时并被终止。
CUDA内核错误可能会在其他某个API调用时异步报告,因此下面的堆栈跟踪可能是不正确的。
为了调试,请考虑传递CUDA_LAUNCH_BLOCKING=1。
【原因分析】
-
资源争用:如果有多个进程或任务同时尝试使用GPU资源,可能会导致某些任务因等待资源而超时。
-
内存不足:GPU内存不足也可能导致内核执行超时。当GPU内存被占满时,新的内存分配请求可能会等待直到有内存被释放,如果等待时间过长,就可能出现超时错误。
-
代码问题:CUDA内核代码中可能存在逻辑错误或死锁,导致内核无法在规定时间内完成执行。
-
硬件问题:在极少数情况下,GPU硬件故障也可能导致这类错误。