提交 96cbce45 authored 作者: Tim Cooijmans's avatar Tim Cooijmans 提交者: Reyhane Askari

more stack trace copying

上级 1b101ffc
...@@ -1323,6 +1323,7 @@ def local_gpua_gemm(op, context_name, inputs, outputs): ...@@ -1323,6 +1323,7 @@ def local_gpua_gemm(op, context_name, inputs, outputs):
def local_gpua_gemmbatch(op, context_name, inputs, outputs): def local_gpua_gemmbatch(op, context_name, inputs, outputs):
if inputs[0].dtype not in ['float16', 'float32', 'float64']: if inputs[0].dtype not in ['float16', 'float32', 'float64']:
return return
with inherit_stack_trace(outputs):
a, b = inputs a, b = inputs
# Since GpuGemmBatch only supports 3D inputs and output, # Since GpuGemmBatch only supports 3D inputs and output,
# we need to add broadcastable dims to the inputs, and drop # we need to add broadcastable dims to the inputs, and drop
...@@ -2599,6 +2600,7 @@ def local_gpu_solve(op, context_name, inputs, outputs): ...@@ -2599,6 +2600,7 @@ def local_gpu_solve(op, context_name, inputs, outputs):
@local_optimizer([GpuCusolverSolve], inplace=True) @local_optimizer([GpuCusolverSolve], inplace=True)
def local_inplace_gpu_solve(node): def local_inplace_gpu_solve(node):
if isinstance(node.op, GpuCusolverSolve) and not node.op.inplace: if isinstance(node.op, GpuCusolverSolve) and not node.op.inplace:
with inherit_stack_trace(node.outputs):
return [GpuCusolverSolve(A_structure=node.op.A_structure, trans=node.op.trans, return [GpuCusolverSolve(A_structure=node.op.A_structure, trans=node.op.trans,
inplace=True)(*node.inputs)] inplace=True)(*node.inputs)]
...@@ -2638,6 +2640,7 @@ register_opt2([slinalg.Solve], 'fast_compile', name='matrix_ops_db2')(matrix_ops ...@@ -2638,6 +2640,7 @@ register_opt2([slinalg.Solve], 'fast_compile', name='matrix_ops_db2')(matrix_ops
@local_optimizer([GpuCholesky], inplace=True) @local_optimizer([GpuCholesky], inplace=True)
def local_inplace_gpu_cholesky(node): def local_inplace_gpu_cholesky(node):
if isinstance(node.op, GpuCholesky) and not node.op.inplace: if isinstance(node.op, GpuCholesky) and not node.op.inplace:
with inherit_stack_trace(node.outputs):
return [node.op.clone_inplace()(*node.inputs)] return [node.op.clone_inplace()(*node.inputs)]
...@@ -2721,6 +2724,7 @@ def local_gpu_magma_matrix_inverse(op, context_name, inputs, outputs): ...@@ -2721,6 +2724,7 @@ def local_gpu_magma_matrix_inverse(op, context_name, inputs, outputs):
@local_optimizer([GpuMagmaMatrixInverse]) @local_optimizer([GpuMagmaMatrixInverse])
def local_inplace_gpu_magma_matrix_inverse(node): def local_inplace_gpu_magma_matrix_inverse(node):
if isinstance(node.op, GpuMagmaMatrixInverse) and not node.op.inplace: if isinstance(node.op, GpuMagmaMatrixInverse) and not node.op.inplace:
with inherit_stack_trace(node.outputs):
return [node.op.clone_inplace()(*node.inputs)] return [node.op.clone_inplace()(*node.inputs)]
......
...@@ -41,6 +41,7 @@ def _check_stack_trace(thing): ...@@ -41,6 +41,7 @@ def _check_stack_trace(thing):
theano.ifelse.IfElse, theano.ifelse.IfElse,
GpuFromHost, HostFromGpu, GpuFromHost, HostFromGpu,
GpuCAReduceCuda, GpuCAReduceCuda,
basic_ops.GpuContiguous,
GpuElemwise, GpuElemwise,
theano.printing.Print, theano.printing.Print,
PdbBreakpoint, PdbBreakpoint,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论