From 612199d0ee11b16bca675da18e8c3673ec8d5836 Mon Sep 17 00:00:00 2001 From: "tianbu.xsw" Date: Thu, 2 Sep 2021 15:35:16 +0800 Subject: [PATCH] quant weight valid range issue --- source/backend/opencl/execution/buffer/ConvBufExecution.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/backend/opencl/execution/buffer/ConvBufExecution.cpp b/source/backend/opencl/execution/buffer/ConvBufExecution.cpp index 8c79a81a..4e5d6846 100644 --- a/source/backend/opencl/execution/buffer/ConvBufExecution.cpp +++ b/source/backend/opencl/execution/buffer/ConvBufExecution.cpp @@ -306,6 +306,7 @@ ConvBufExecution::ConvBufExecution(const std::vector &inputs, const st std::string kernelName = "conv_2d_c4h1w4"; mInputChannel = inputs[0]->channel(); + std::shared_ptr quanCommon; if (inputs.size() != 1) { // Multi - Input mConv1x1Opt = false; @@ -315,7 +316,6 @@ ConvBufExecution::ConvBufExecution(const std::vector &inputs, const st mRasterExe.reset(new RasterBufExecution({virtualFilter.get()}, mOpenCLBackend)); } else { int weightSize = 0; - std::shared_ptr quanCommon; ConvolutionCommon::getConvParameters(&quanCommon, conv2dParams, &mFilterDataPtr, &weightSize); //select opt conv method mConv1x1Opt = (mKernelHeight == mKernelWidth && mKernelHeight == 1 && mPaddings[0] == 0 && @@ -470,10 +470,11 @@ ErrorCode ConvBufExecution::onResize(const std::vector &inputs, const mLocalWorkSize = {retTune.first[0], retTune.first[1]}; } } + + std::shared_ptr quanCommon; int min_index = min_cost.second; if(min_index >= c8_index_start) {//if best kernel is "conv_2d_1x1_c8h1w4", set weight packCout to 8 int weightSize = 0; - std::shared_ptr quanCommon; ConvolutionCommon::getConvParameters(&quanCommon, mConv2dParams, &mFilterDataPtr, &weightSize); setConv1x1WeightBuffer(8, 4, mFilterDataPtr); }