提交 e87ea4e9 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Set error before failing when checking dimensions of inplace outputs

上级 b564a736
...@@ -43,7 +43,7 @@ class NaiveAlgo(object): ...@@ -43,7 +43,7 @@ class NaiveAlgo(object):
def cache_version(self): def cache_version(self):
ver = self.scalar_op.c_code_cache_version() ver = self.scalar_op.c_code_cache_version()
if ver: if ver:
return (16, self.verbose, self.sync, ver) return (17, self.verbose, self.sync, ver)
else: else:
return ver return ver
...@@ -978,6 +978,15 @@ nd_collapse_[i]=0; ...@@ -978,6 +978,15 @@ nd_collapse_[i]=0;
for (int i = 0; (i< %(nd)s) && (%(oname)s); ++i) { for (int i = 0; (i< %(nd)s) && (%(oname)s); ++i) {
if (dims[i] != CudaNdarray_HOST_DIMS(%(oname)s)[i]) if (dims[i] != CudaNdarray_HOST_DIMS(%(oname)s)[i])
{ {
PyErr_Format(PyExc_ValueError,
"GpuElemwise. Output dimension mis-match. Output"
" %(idx)d (indices start at 0), working inplace"
" on input %(input_idx)s, has shape[%%i] == %%i"
", but the output's size on that axis is %%i.",
i,
CudaNdarray_HOST_DIMS(%(oname)s)[i],
dims[i]
);
Py_DECREF(%(oname)s); Py_DECREF(%(oname)s);
%(oname)s = NULL; %(oname)s = NULL;
%(fail)s; %(fail)s;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论