提交 e7071351 authored 作者: Frederic's avatar Frederic

Fix compilation and test

上级 89f488e8
...@@ -127,9 +127,6 @@ def c_set_tensor4d(var, desc, err, fail): ...@@ -127,9 +127,6 @@ def c_set_tensor4d(var, desc, err, fail):
case GA_DOUBLE: case GA_DOUBLE:
dt = CUDNN_DATA_DOUBLE; dt = CUDNN_DATA_DOUBLE;
break; break;
case GA_HALF:
dt = CUDNN_DATA_HALF;
break;
default: default:
PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_tensor4d"); PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_tensor4d");
return -1; return -1;
......
...@@ -12,20 +12,23 @@ c_set_tensor4d(PyGpuArrayObject *var, cudnnTensorDescriptor_t desc) { ...@@ -12,20 +12,23 @@ c_set_tensor4d(PyGpuArrayObject *var, cudnnTensorDescriptor_t desc) {
case GA_DOUBLE: case GA_DOUBLE:
dt = CUDNN_DATA_DOUBLE; dt = CUDNN_DATA_DOUBLE;
break; break;
case GA_HALF:
dt = CUDNN_DATA_HALF;
break;
default: default:
PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_tensor4d"); PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_tensor4d");
return -1; return -1;
} }
ds = gpuarray_get_elsize(var->ga.typecode); ds = gpuarray_get_elsize(var->ga.typecode);
int str0, str1, str2, str3;
// cudnn do not like 0s in strides
str3 = PyGpuArray_STRIDES(var)[3]?PyGpuArray_STRIDES(var)[3]/ds:1;
str2 = PyGpuArray_STRIDES(var)[2]?PyGpuArray_STRIDES(var)[2]/ds:PyGpuArray_DIMS(var)[3];
str1 = PyGpuArray_STRIDES(var)[1]?PyGpuArray_STRIDES(var)[1]/ds:PyGpuArray_DIMS(var)[2]*PyGpuArray_DIMS(var)[3];
str0 = PyGpuArray_STRIDES(var)[0]?PyGpuArray_STRIDES(var)[0]/ds:PyGpuArray_DIMS(var)[2]*PyGpuArray_DIMS(var)[3]*PyGpuArray_DIMS(var)[1];
cudnnStatus_t err = cudnnSetTensor4dDescriptorEx( cudnnStatus_t err = cudnnSetTensor4dDescriptorEx(
desc, dt, desc, dt,
PyGpuArray_DIM(var, 0), PyGpuArray_DIM(var, 1), PyGpuArray_DIM(var, 0), PyGpuArray_DIM(var, 1),
PyGpuArray_DIM(var, 2), PyGpuArray_DIM(var, 3), PyGpuArray_DIM(var, 2), PyGpuArray_DIM(var, 3),
PyGpuArray_STRIDE(var, 0) / ds, PyGpuArray_STRIDE(var, 1) / ds, str0, str1, str2, str3);
PyGpuArray_STRIDE(var, 2) / ds, PyGpuArray_STRIDE(var, 3) / ds);
if (err != CUDNN_STATUS_SUCCESS) { if (err != CUDNN_STATUS_SUCCESS) {
PyErr_Format(PyExc_RuntimeError, PyErr_Format(PyExc_RuntimeError,
"Could not set tensor4d descriptor: %s", "Could not set tensor4d descriptor: %s",
...@@ -50,9 +53,6 @@ c_set_filter(PyGpuArrayObject *var, cudnnFilterDescriptor_t desc) { ...@@ -50,9 +53,6 @@ c_set_filter(PyGpuArrayObject *var, cudnnFilterDescriptor_t desc) {
case GA_DOUBLE: case GA_DOUBLE:
dt = CUDNN_DATA_DOUBLE; dt = CUDNN_DATA_DOUBLE;
break; break;
case GA_HALF:
dt = CUDNN_DATA_HALF;
break;
default: default:
PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_filter"); PyErr_SetString(PyExc_TypeError, "Non-float datatype in c_set_filter");
return -1; return -1;
......
...@@ -732,13 +732,11 @@ class test_SoftMax(test_nnet.test_SoftMax): ...@@ -732,13 +732,11 @@ class test_SoftMax(test_nnet.test_SoftMax):
x_gpu, x_gpu,
f_z, f_z,
f_gpu, f_gpu,
cmp, cmp
self.mode,
) )
self._test_softmax( self._test_softmax(
x, x, f_z, f_z, self._cmp, x, x, f_z, f_z, self._cmp
self.mode
) )
# Verify that the SoftmaxGrad -> Gpu[Dnn]SoftmaxGrad # Verify that the SoftmaxGrad -> Gpu[Dnn]SoftmaxGrad
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论