我的图形系统是GT 550M
当我在gpu上运行我的程序时出现以下错误,我不知道如何解决这个问题
MemoryError: error freeing device pointer 0x0000000500C60000 (the launch timed out and was terminated)
Apply node that caused the error: GpuReshape{4}(GpuConv{valid, (2, 2), None, (7, 7), True, (3, 224, 224), (7, 7)}.0, TensorConstant{[672 1 109 109]})
Inputs types: [CudaNdarrayType(float32, 4D), TensorType(int64, vector)]
Inputs shapes: [(7, 96, 109, 109), (4L,)]
Inputs strides: [(1140576, 11881, 109, 1), (8L,)]
Inputs scalar values: ['not scalar', 'not scalar']
Debugprint of the apply node:
GpuReshape{4} [@A] <CudaNdarrayType(float32, (False, True, False, False))> ''
|GpuConv{valid, (2, 2), None, (7, 7), True, (3, 224, 224), (7, 7)} [@B] <CudaNdarrayType(float32, 4D)> ''
| |GpuDimShuffle{0,3,1,2} [@C] <CudaNdarrayType(float32, 4D)> ''
| | |GpuFromHost [@D] <CudaNdarrayType(float32, 4D)> ''
| | |x [@E] <TensorType(float32, 4D)>
| |<CudaNdarrayType(float32, 4D)> [@F] <CudaNdarrayType(float32, 4D)>
|TensorConstant{[672 1 109 109]} [@G] <TensorType(int64, vector)>
HINT: Re-running with most Theano optimization disabled could give you a back-traces when this node was created. This can be done with by setting the Theano flags optimizer=fast_compile
答案 0 :(得分:1)
cuda的错误是异步返回的。因此,错误消息的一部分可能是不相关的。这是第一行:
MemoryError:错误释放设备指针0x0000000500C60000(启动超时并被终止)
答案在第二部分:启动超时并终止
您的GPU已连接到显示器。在这种情况下,每个GPU内核调用的限制为5秒。碰巧它被破坏了,驱动程序杀了那个内核。这是为了防止屏幕无响应。
可能的解决方案: 1)为监视器使用不同的gpu。 2)通过使用小输入数据(例如较低批量)使内核更快 3)购买更快的GPU,不确定它是否可行,如果它适用于您当前的尺寸,问题将出现更大的尺寸。