提交 b9e29760 authored 作者: --global's avatar --global

Remove dim param from c_set_tensorNd and c_set_kernelNd

上级 01706dac
...@@ -1454,7 +1454,7 @@ if (!CudaNdarray_is_c_contiguous(%(input)s)) { ...@@ -1454,7 +1454,7 @@ if (!CudaNdarray_is_c_contiguous(%(input)s)) {
%(fail)s %(fail)s
} }
if (c_set_tensorNd(%(input)s, %(input)s->nd, %(input_desc)s) != 0) if (c_set_tensorNd(%(input)s, %(input_desc)s) != 0)
%(fail)s %(fail)s
cudnnPoolingMode_t mode; cudnnPoolingMode_t mode;
...@@ -1486,7 +1486,7 @@ if (CudaNdarray_prep_output(&%(out)s, ndims+2, %(out)s_dims) != 0) ...@@ -1486,7 +1486,7 @@ if (CudaNdarray_prep_output(&%(out)s, ndims+2, %(out)s_dims) != 0)
%(fail)s %(fail)s
} }
if (c_set_tensorNd(%(out)s, %(out)s->nd, %(output_desc)s) != 0) if (c_set_tensorNd(%(out)s, %(output_desc)s) != 0)
%(fail)s %(fail)s
{ {
...@@ -1642,11 +1642,11 @@ if (!CudaNdarray_is_c_contiguous(%(output)s)) { ...@@ -1642,11 +1642,11 @@ if (!CudaNdarray_is_c_contiguous(%(output)s)) {
%(fail)s %(fail)s
} }
if (c_set_tensorNd(%(input)s, %(input)s->nd, %(input_desc)s) != 0) if (c_set_tensorNd(%(input)s, %(input_desc)s) != 0)
%(fail)s %(fail)s
if (c_set_tensorNd(%(input_grad)s, %(input_grad)s->nd, %(input_grad_desc)s) != 0) if (c_set_tensorNd(%(input_grad)s, %(input_grad_desc)s) != 0)
%(fail)s %(fail)s
if (c_set_tensorNd(%(output)s, %(output)s->nd, %(output_desc)s) != 0) if (c_set_tensorNd(%(output)s, %(output_desc)s) != 0)
%(fail)s %(fail)s
if (CudaNdarray_prep_output(&%(output_grad)s, if (CudaNdarray_prep_output(&%(output_grad)s,
...@@ -1656,7 +1656,7 @@ if (CudaNdarray_prep_output(&%(output_grad)s, ...@@ -1656,7 +1656,7 @@ if (CudaNdarray_prep_output(&%(output_grad)s,
%(fail)s %(fail)s
} }
if (c_set_tensorNd(%(output_grad)s, %(output_grad)s->nd, %(output_grad_desc)s) != 0) if (c_set_tensorNd(%(output_grad)s, %(output_grad_desc)s) != 0)
%(fail)s %(fail)s
{ {
......
...@@ -3,9 +3,10 @@ static cudnnHandle_t _handle = NULL; ...@@ -3,9 +3,10 @@ static cudnnHandle_t _handle = NULL;
static int static int
c_set_tensorNd(CudaNdarray *var, int dim, cudnnTensorDescriptor_t desc) { c_set_tensorNd(CudaNdarray *var, cudnnTensorDescriptor_t desc) {
int dim = CudaNdarray_NDIM(var);
int strides[dim]; int strides[dim];
int default_str = 1; int default_str = 1;
...@@ -33,12 +34,13 @@ c_set_tensorNd(CudaNdarray *var, int dim, cudnnTensorDescriptor_t desc) { ...@@ -33,12 +34,13 @@ c_set_tensorNd(CudaNdarray *var, int dim, cudnnTensorDescriptor_t desc) {
static int static int
c_set_filterNd(CudaNdarray *var, int dim, cudnnFilterDescriptor_t desc) { c_set_filterNd(CudaNdarray *var, cudnnFilterDescriptor_t desc) {
if (!CudaNdarray_is_c_contiguous(var)) { if (!CudaNdarray_is_c_contiguous(var)) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"Only contiguous filters (kernels) are supported."); "Only contiguous filters (kernels) are supported.");
return -1; return -1;
} }
int dim = CudaNdarray_NDIM(var);
cudnnStatus_t err = cudnnSetFilterNdDescriptor(desc, CUDNN_DATA_FLOAT, dim, cudnnStatus_t err = cudnnSetFilterNdDescriptor(desc, CUDNN_DATA_FLOAT, dim,
CudaNdarray_HOST_DIMS(var)); CudaNdarray_HOST_DIMS(var));
if (err != CUDNN_STATUS_SUCCESS) { if (err != CUDNN_STATUS_SUCCESS) {
......
...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_fwd)(CudaNdarray *input, CudaNdarray *kerns, ...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_fwd)(CudaNdarray *input, CudaNdarray *kerns,
return 1; return 1;
} }
if (c_set_tensorNd(input, nb_dim, APPLY_SPECIFIC(input)) == -1) if (c_set_tensorNd(input, APPLY_SPECIFIC(input)) == -1)
return 1; return 1;
if (c_set_filterNd(kerns, nb_dim, APPLY_SPECIFIC(kerns)) == -1) if (c_set_filterNd(kerns, APPLY_SPECIFIC(kerns)) == -1)
return 1; return 1;
#ifdef CONV_INPLACE #ifdef CONV_INPLACE
...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_fwd)(CudaNdarray *input, CudaNdarray *kerns, ...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_fwd)(CudaNdarray *input, CudaNdarray *kerns,
return 1; return 1;
#endif #endif
if (c_set_tensorNd(*output, nb_dim, APPLY_SPECIFIC(output)) == -1) if (c_set_tensorNd(*output, APPLY_SPECIFIC(output)) == -1)
return 1; return 1;
{ {
......
...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_gi)(CudaNdarray *kerns, CudaNdarray *output, ...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_gi)(CudaNdarray *kerns, CudaNdarray *output,
return 1; return 1;
} }
if (c_set_tensorNd(output, nb_dim, APPLY_SPECIFIC(output)) == -1) if (c_set_tensorNd(output, APPLY_SPECIFIC(output)) == -1)
return 1; return 1;
if (c_set_filterNd(kerns, nb_dim, APPLY_SPECIFIC(kerns)) == -1) if (c_set_filterNd(kerns, APPLY_SPECIFIC(kerns)) == -1)
return 1; return 1;
#ifdef CONV_INPLACE #ifdef CONV_INPLACE
...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_gi)(CudaNdarray *kerns, CudaNdarray *output, ...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_gi)(CudaNdarray *kerns, CudaNdarray *output,
return 1; return 1;
#endif #endif
if (c_set_tensorNd(*input, nb_dim, APPLY_SPECIFIC(input)) == -1) if (c_set_tensorNd(*input, APPLY_SPECIFIC(input)) == -1)
return 1; return 1;
#if defined(CUDNN_VERSION) && CUDNN_VERSION >= 3000 #if defined(CUDNN_VERSION) && CUDNN_VERSION >= 3000
......
...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_gw)(CudaNdarray *input, CudaNdarray *output, ...@@ -12,9 +12,9 @@ APPLY_SPECIFIC(conv_gw)(CudaNdarray *input, CudaNdarray *output,
return 1; return 1;
} }
if (c_set_tensorNd(input, nb_dim, APPLY_SPECIFIC(input)) == -1) if (c_set_tensorNd(input, APPLY_SPECIFIC(input)) == -1)
return 1; return 1;
if (c_set_tensorNd(output, nb_dim, APPLY_SPECIFIC(output)) == -1) if (c_set_tensorNd(output, APPLY_SPECIFIC(output)) == -1)
return 1; return 1;
#ifdef CONV_INPLACE #ifdef CONV_INPLACE
...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_gw)(CudaNdarray *input, CudaNdarray *output, ...@@ -28,7 +28,7 @@ APPLY_SPECIFIC(conv_gw)(CudaNdarray *input, CudaNdarray *output,
return 1; return 1;
#endif #endif
if (c_set_filterNd(*kerns, nb_dim, APPLY_SPECIFIC(kerns)) == -1) if (c_set_filterNd(*kerns, APPLY_SPECIFIC(kerns)) == -1)
return 1; return 1;
#if defined(CUDNN_VERSION) && CUDNN_VERSION >= 3000 #if defined(CUDNN_VERSION) && CUDNN_VERSION >= 3000
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论