From 37e2afb8f6b392bc702883e78a1bfa52d7fbe909 Mon Sep 17 00:00:00 2001 From: YashasSamaga Date: Thu, 9 Jul 2020 19:40:44 +0530 Subject: [PATCH] fix concat fusion for cuda4dnn --- modules/dnn/src/dnn.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index bd41528a80..59c00323d6 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -2972,7 +2972,6 @@ struct Net::Impl : public detail::NetImplBase ld.outputBlobsWrappers[0] = wrap(output); #endif std::vector chrange(output.dims, Range::all()); - int ofs = 0; for( i = 0; i < ninputs; i++ ) { @@ -3000,9 +2999,9 @@ struct Net::Impl : public detail::NetImplBase if (preferableBackend == DNN_BACKEND_CUDA) { auto cuda_wrapper = wrap(output).dynamicCast(); - auto offset = chrange[1].start * (output.size[2] * output.size[3]); - auto shape = MatShape{1, chrange[1].size(), output.size[2], output.size[3]}; - cuda_wrapper->update(shape, offset); + auto offset = chrange[axis].start * output_slice.total(axis + 1, output.dims); + auto new_shape = shape(output_slice); + cuda_wrapper->update(new_shape, offset); inp_i_data->outputBlobsWrappers[pin.oid] = cuda_wrapper.staticCast(); } #endif