Browse Source

modified mem free condition

tags/v1.1.0
kai00 5 years ago
parent
commit
17dbb55b5d
4 changed files with 20 additions and 16 deletions
  1. +5
    -4
      mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc
  2. +5
    -4
      mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc
  3. +5
    -4
      mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc
  4. +5
    -4
      mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc

+ 5
- 4
mindspore/lite/src/runtime/kernel/arm/fp16/convolution_depthwise_fp16.cc View File

@@ -145,7 +145,8 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector<lite::Tensor *>

auto *weight_tensor = inputs.at(kWeightIndex);
auto *restore_data = weight_tensor->MutableData();
if (weight_tensor->data_type() == kNumberTypeInt8) {
auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false;
if (dequant_flag) {
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
if (dequant_weight == nullptr) {
MS_LOG(ERROR) << "dequant data is nullptr.";
@@ -165,7 +166,7 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector<lite::Tensor *>
}
if (kernel == nullptr) {
MS_LOG(ERROR) << "kernel is nullptr.";
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
@@ -177,14 +178,14 @@ kernel::LiteKernel *CpuConvDwFp16KernelCreator(const std::vector<lite::Tensor *>
delete kernel;
MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: "
<< schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
}
return nullptr;
}
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);


+ 5
- 4
mindspore/lite/src/runtime/kernel/arm/fp16/convolution_fp16.cc View File

@@ -183,7 +183,8 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector<lite::Tensor *> &

auto *weight_tensor = inputs.at(kWeightIndex);
auto *restore_data = weight_tensor->MutableData();
if (weight_tensor->data_type() == kNumberTypeInt8) {
auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false;
if (dequant_flag) {
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
if (dequant_weight == nullptr) {
MS_LOG(ERROR) << "dequant data is nullptr.";
@@ -218,7 +219,7 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector<lite::Tensor *> &
}
if (kernel == nullptr) {
MS_LOG(DEBUG) << "Create conv fp16 kernel failed.";
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
@@ -230,14 +231,14 @@ kernel::LiteKernel *CpuConvFp16KernelCreator(const std::vector<lite::Tensor *> &
delete kernel;
MS_LOG(INFO) << "Init fp16 kernel failed, name: " << opParameter->name_
<< ", type: " << schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
}
return nullptr;
}
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);


+ 5
- 4
mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_depthwise_fp16.cc View File

@@ -205,7 +205,8 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor

auto *weight_tensor = inputs.at(kWeightIndex);
auto *restore_data = weight_tensor->MutableData();
if (weight_tensor->data_type() == kNumberTypeInt8) {
auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false;
if (dequant_flag) {
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
if (dequant_weight == nullptr) {
MS_LOG(ERROR) << "dequant data is nullptr.";
@@ -218,7 +219,7 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor
auto kernel = new (std::nothrow) DeconvolutionDepthwiseFp16CPUKernel(opParameter, inputs, outputs, ctx, primitive);
if (kernel == nullptr) {
MS_LOG(ERROR) << "kernel is nullptr.";
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
@@ -230,14 +231,14 @@ kernel::LiteKernel *CpuDeconvDwFp16KernelCreator(const std::vector<lite::Tensor
delete kernel;
MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: "
<< schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
}
return nullptr;
}
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);


+ 5
- 4
mindspore/lite/src/runtime/kernel/arm/fp16/deconvolution_fp16.cc View File

@@ -215,7 +215,8 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector<lite::Tensor *>

auto *weight_tensor = inputs.at(kWeightIndex);
auto *restore_data = weight_tensor->MutableData();
if (weight_tensor->data_type() == kNumberTypeInt8) {
auto dequant_flag = (weight_tensor->data_type() == kNumberTypeInt8) ? true : false;
if (dequant_flag) {
auto *dequant_weight = kernel::LiteKernelUtil::DequantWeight(weight_tensor);
if (dequant_weight == nullptr) {
MS_LOG(ERROR) << "dequant data is nullptr.";
@@ -228,7 +229,7 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector<lite::Tensor *>
auto kernel = new (std::nothrow) DeConvolutionFp16CPUKernel(opParameter, inputs, outputs, ctx, primitive);
if (kernel == nullptr) {
MS_LOG(ERROR) << "kernel is nullptr.";
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
@@ -240,14 +241,14 @@ kernel::LiteKernel *CpuDeConvFp16KernelCreator(const std::vector<lite::Tensor *>
delete kernel;
MS_LOG(ERROR) << "Init kernel failed, name: " << opParameter->name_ << ", type: "
<< schema::EnumNamePrimitiveType(static_cast<schema::PrimitiveType>(opParameter->type_));
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);
}
return nullptr;
}
if (weight_tensor->data_type() == kNumberTypeInt8) {
if (dequant_flag) {
weight_tensor->FreeData();
weight_tensor->set_data_type(kNumberTypeInt8);
weight_tensor->SetData(restore_data);


Loading…
Cancel
Save