Files
2026-07-13 13:33:03 +08:00

4182 lines
166 KiB
C++

// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: MNN_compression.proto
#include "MNN_compression.pb.h"
#include <algorithm>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
PROTOBUF_PRAGMA_INIT_SEG
namespace MNN {
namespace Compression {
constexpr QuantizeParams::QuantizeParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: layer_()
, round_mode_(1)
{}
struct QuantizeParamsDefaultTypeInternal {
constexpr QuantizeParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~QuantizeParamsDefaultTypeInternal() {}
union {
QuantizeParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT QuantizeParamsDefaultTypeInternal _QuantizeParams_default_instance_;
constexpr LayerQuantizeParams_ActivationParams::LayerQuantizeParams_ActivationParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: scales_()
, name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
, zero_point_(0)
, clamp_max_(127)
, bits_(8)
, clamp_min_(-128){}
struct LayerQuantizeParams_ActivationParamsDefaultTypeInternal {
constexpr LayerQuantizeParams_ActivationParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LayerQuantizeParams_ActivationParamsDefaultTypeInternal() {}
union {
LayerQuantizeParams_ActivationParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_ActivationParamsDefaultTypeInternal _LayerQuantizeParams_ActivationParams_default_instance_;
constexpr LayerQuantizeParams_WeightParams::LayerQuantizeParams_WeightParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: scales_()
, name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
, asymmetric_(false)
, block_size_(0)
, clamp_max_(127)
, bits_(8)
, clamp_min_(-128){}
struct LayerQuantizeParams_WeightParamsDefaultTypeInternal {
constexpr LayerQuantizeParams_WeightParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LayerQuantizeParams_WeightParamsDefaultTypeInternal() {}
union {
LayerQuantizeParams_WeightParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_WeightParamsDefaultTypeInternal _LayerQuantizeParams_WeightParams_default_instance_;
constexpr LayerQuantizeParams_WinogradParams::LayerQuantizeParams_WinogradParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: units_attr_()
, version_(0){}
struct LayerQuantizeParams_WinogradParamsDefaultTypeInternal {
constexpr LayerQuantizeParams_WinogradParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LayerQuantizeParams_WinogradParamsDefaultTypeInternal() {}
union {
LayerQuantizeParams_WinogradParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_WinogradParamsDefaultTypeInternal _LayerQuantizeParams_WinogradParams_default_instance_;
constexpr LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: kernel_size_()
, input_channel_(0)
, output_channel_(0){}
struct LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal {
constexpr LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal() {}
union {
LayerQuantizeParams_ConvolutionInfo _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal _LayerQuantizeParams_ConvolutionInfo_default_instance_;
constexpr LayerQuantizeParams::LayerQuantizeParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: input_()
, weight_()
, output_()
, op_name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
, subgraph_name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
, wino_params_(nullptr)
, conv_(nullptr)
, method_(0)
{}
struct LayerQuantizeParamsDefaultTypeInternal {
constexpr LayerQuantizeParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LayerQuantizeParamsDefaultTypeInternal() {}
union {
LayerQuantizeParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParamsDefaultTypeInternal _LayerQuantizeParams_default_instance_;
constexpr LevelPrunerParams::LevelPrunerParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: weight_tensor_names_()
, prune_ratios_()
, layer_names_(){}
struct LevelPrunerParamsDefaultTypeInternal {
constexpr LevelPrunerParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~LevelPrunerParamsDefaultTypeInternal() {}
union {
LevelPrunerParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LevelPrunerParamsDefaultTypeInternal _LevelPrunerParams_default_instance_;
constexpr SIMDOCPrunerParams::SIMDOCPrunerParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: weight_tensor_names_()
, prune_ratios_()
, layer_names_()
, oc_blocks_(){}
struct SIMDOCPrunerParamsDefaultTypeInternal {
constexpr SIMDOCPrunerParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~SIMDOCPrunerParamsDefaultTypeInternal() {}
union {
SIMDOCPrunerParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SIMDOCPrunerParamsDefaultTypeInternal _SIMDOCPrunerParams_default_instance_;
constexpr PruneParams::PruneParams(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: level_pruner_params_(nullptr)
, simd_oc_pruner_params_(nullptr)
, type_(0)
{}
struct PruneParamsDefaultTypeInternal {
constexpr PruneParamsDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~PruneParamsDefaultTypeInternal() {}
union {
PruneParams _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PruneParamsDefaultTypeInternal _PruneParams_default_instance_;
constexpr CompressionAlgo::CompressionAlgo(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: quant_params_(nullptr)
, prune_params_(nullptr)
, type_(0)
{}
struct CompressionAlgoDefaultTypeInternal {
constexpr CompressionAlgoDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~CompressionAlgoDefaultTypeInternal() {}
union {
CompressionAlgo _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CompressionAlgoDefaultTypeInternal _CompressionAlgo_default_instance_;
constexpr Pipeline::Pipeline(
::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
: algo_()
, version_(nullptr)
, mnn_uuid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
, for_guide_(false){}
struct PipelineDefaultTypeInternal {
constexpr PipelineDefaultTypeInternal()
: _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
~PipelineDefaultTypeInternal() {}
union {
Pipeline _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PipelineDefaultTypeInternal _Pipeline_default_instance_;
} // namespace Compression
} // namespace MNN
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_MNN_5fcompression_2eproto[11];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_MNN_5fcompression_2eproto[4];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_MNN_5fcompression_2eproto = nullptr;
const uint32_t TableStruct_MNN_5fcompression_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
PROTOBUF_FIELD_OFFSET(::MNN::Compression::QuantizeParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::QuantizeParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::QuantizeParams, round_mode_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::QuantizeParams, layer_),
0,
~0u,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, name_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, scales_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, zero_point_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, clamp_min_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ActivationParams, clamp_max_),
0,
3,
~0u,
1,
4,
2,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, name_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, scales_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, clamp_min_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, clamp_max_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, asymmetric_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, block_size_),
0,
4,
~0u,
5,
3,
1,
2,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, version_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, units_attr_),
0,
~0u,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, input_channel_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, output_channel_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, kernel_size_),
0,
1,
~0u,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, input_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, weight_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, output_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, method_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, wino_params_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, op_name_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, subgraph_name_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, conv_),
~0u,
~0u,
~0u,
4,
2,
0,
1,
3,
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LevelPrunerParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LevelPrunerParams, weight_tensor_names_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LevelPrunerParams, prune_ratios_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::LevelPrunerParams, layer_names_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::SIMDOCPrunerParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::SIMDOCPrunerParams, weight_tensor_names_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::SIMDOCPrunerParams, prune_ratios_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::SIMDOCPrunerParams, layer_names_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::SIMDOCPrunerParams, oc_blocks_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::PruneParams, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::PruneParams, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::PruneParams, type_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::PruneParams, level_pruner_params_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::PruneParams, simd_oc_pruner_params_),
2,
0,
1,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::CompressionAlgo, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::CompressionAlgo, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::CompressionAlgo, type_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::CompressionAlgo, quant_params_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::CompressionAlgo, prune_params_),
2,
0,
1,
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, _has_bits_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, version_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, algo_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, mnn_uuid_),
PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, for_guide_),
0,
~0u,
1,
2,
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, 8, -1, sizeof(::MNN::Compression::QuantizeParams)},
{ 10, 22, -1, sizeof(::MNN::Compression::LayerQuantizeParams_ActivationParams)},
{ 28, 41, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WeightParams)},
{ 48, 56, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WinogradParams)},
{ 58, 67, -1, sizeof(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo)},
{ 70, 84, -1, sizeof(::MNN::Compression::LayerQuantizeParams)},
{ 92, -1, -1, sizeof(::MNN::Compression::LevelPrunerParams)},
{ 101, -1, -1, sizeof(::MNN::Compression::SIMDOCPrunerParams)},
{ 111, 120, -1, sizeof(::MNN::Compression::PruneParams)},
{ 123, 132, -1, sizeof(::MNN::Compression::CompressionAlgo)},
{ 135, 145, -1, sizeof(::MNN::Compression::Pipeline)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_QuantizeParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LayerQuantizeParams_ActivationParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LayerQuantizeParams_WeightParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LayerQuantizeParams_WinogradParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LayerQuantizeParams_ConvolutionInfo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LayerQuantizeParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_LevelPrunerParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_SIMDOCPrunerParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_PruneParams_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_CompressionAlgo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MNN::Compression::_Pipeline_default_instance_),
};
const char descriptor_table_protodef_MNN_5fcompression_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\025MNN_compression.proto\022\017MNN.Compression"
"\"\361\001\n\016QuantizeParams\022S\n\nround_mode\030\001 \001(\0162"
").MNN.Compression.QuantizeParams.RoundMo"
"de:\024ROUND_AWAY_FROM_ZERO\0223\n\005layer\030\004 \003(\0132"
"$.MNN.Compression.LayerQuantizeParams\"U\n"
"\tRoundMode\022\026\n\022ROUND_TOWARDS_ZERO\020\000\022\030\n\024RO"
"UND_AWAY_FROM_ZERO\020\001\022\026\n\022ROUND_HALF_TO_EV"
"EN\020\002\"\340\007\n\023LayerQuantizeParams\022D\n\005input\030\001 "
"\003(\01325.MNN.Compression.LayerQuantizeParam"
"s.ActivationParams\022A\n\006weight\030\002 \003(\01321.MNN"
".Compression.LayerQuantizeParams.WeightP"
"arams\022E\n\006output\030\003 \003(\01325.MNN.Compression."
"LayerQuantizeParams.ActivationParams\022E\n\006"
"method\030\004 \001(\01620.MNN.Compression.LayerQuan"
"tizeParams.QuantMethod:\003QAT\022H\n\013wino_para"
"ms\030\005 \001(\01323.MNN.Compression.LayerQuantize"
"Params.WinogradParams\022\017\n\007op_name\030\006 \001(\t\022\025"
"\n\rsubgraph_name\030\007 \001(\t\022B\n\004conv\030\010 \001(\01324.MN"
"N.Compression.LayerQuantizeParams.Convol"
"utionInfo\032\211\001\n\020ActivationParams\022\014\n\004name\030\001"
" \002(\t\022\017\n\004bits\030\002 \001(\005:\0018\022\016\n\006scales\030\003 \003(\002\022\025\n"
"\nzero_point\030\004 \001(\005:\0010\022\027\n\tclamp_min\030\005 \001(\005:"
"\004-128\022\026\n\tclamp_max\030\006 \001(\005:\003127\032\240\001\n\014Weight"
"Params\022\014\n\004name\030\001 \002(\t\022\017\n\004bits\030\002 \001(\005:\0018\022\016\n"
"\006scales\030\003 \003(\002\022\027\n\tclamp_min\030\004 \001(\005:\004-128\022\026"
"\n\tclamp_max\030\005 \001(\005:\003127\022\031\n\nasymmetric\030\006 \001"
"(\010:\005false\022\025\n\nblock_size\030\007 \001(\005:\0010\0328\n\016Wino"
"gradParams\022\022\n\007version\030\001 \002(\005:\0010\022\022\n\nunits_"
"attr\030\004 \003(\005\032U\n\017ConvolutionInfo\022\025\n\rinput_c"
"hannel\030\001 \002(\005\022\026\n\016output_channel\030\002 \002(\005\022\023\n\013"
"kernel_size\030\003 \003(\005\"<\n\013QuantMethod\022\007\n\003QAT\020"
"\000\022\021\n\rOverflowAware\020\001\022\021\n\rWinogradAware\020\002\""
"[\n\021LevelPrunerParams\022\033\n\023weight_tensor_na"
"mes\030\001 \003(\t\022\024\n\014prune_ratios\030\002 \003(\002\022\023\n\013layer"
"_names\030\003 \003(\t\"o\n\022SIMDOCPrunerParams\022\033\n\023we"
"ight_tensor_names\030\001 \003(\t\022\024\n\014prune_ratios\030"
"\002 \003(\002\022\023\n\013layer_names\030\003 \003(\t\022\021\n\toc_blocks\030"
"\004 \003(\005\"\202\002\n\013PruneParams\022<\n\004type\030\001 \001(\0162&.MN"
"N.Compression.PruneParams.PruneType:\006RAN"
"DOM\022\?\n\023level_pruner_params\030\002 \001(\0132\".MNN.C"
"ompression.LevelPrunerParams\022B\n\025simd_oc_"
"pruner_params\030\003 \001(\0132#.MNN.Compression.SI"
"MDOCPrunerParams\"0\n\tPruneType\022\n\n\006RANDOM\020"
"\000\022\013\n\007SIMD_OC\020\001\022\n\n\006FILTER\020\002\"\362\001\n\017Compressi"
"onAlgo\022H\n\004type\030\001 \001(\01620.MNN.Compression.C"
"ompressionAlgo.CompressionType:\010QUANTIZE"
"\0225\n\014quant_params\030\002 \001(\0132\037.MNN.Compression"
".QuantizeParams\0222\n\014prune_params\030\003 \001(\0132\034."
"MNN.Compression.PruneParams\"*\n\017Compressi"
"onType\022\014\n\010QUANTIZE\020\000\022\t\n\005PRUNE\020\001\"~\n\010Pipel"
"ine\022\026\n\007version\030\001 \002(\t:\0050.0.0\022.\n\004algo\030\002 \003("
"\0132 .MNN.Compression.CompressionAlgo\022\020\n\010m"
"nn_uuid\030\003 \001(\t\022\030\n\tfor_guide\030\004 \001(\010:\005false"
;
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_MNN_5fcompression_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_MNN_5fcompression_2eproto = {
false, false, 2119, descriptor_table_protodef_MNN_5fcompression_2eproto, "MNN_compression.proto",
&descriptor_table_MNN_5fcompression_2eproto_once, nullptr, 0, 11,
schemas, file_default_instances, TableStruct_MNN_5fcompression_2eproto::offsets,
file_level_metadata_MNN_5fcompression_2eproto, file_level_enum_descriptors_MNN_5fcompression_2eproto, file_level_service_descriptors_MNN_5fcompression_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_MNN_5fcompression_2eproto_getter() {
return &descriptor_table_MNN_5fcompression_2eproto;
}
// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_MNN_5fcompression_2eproto(&descriptor_table_MNN_5fcompression_2eproto);
namespace MNN {
namespace Compression {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* QuantizeParams_RoundMode_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_MNN_5fcompression_2eproto);
return file_level_enum_descriptors_MNN_5fcompression_2eproto[0];
}
bool QuantizeParams_RoundMode_IsValid(int value) {
switch (value) {
case 0:
case 1:
case 2:
return true;
default:
return false;
}
}
#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr QuantizeParams_RoundMode QuantizeParams::ROUND_TOWARDS_ZERO;
constexpr QuantizeParams_RoundMode QuantizeParams::ROUND_AWAY_FROM_ZERO;
constexpr QuantizeParams_RoundMode QuantizeParams::ROUND_HALF_TO_EVEN;
constexpr QuantizeParams_RoundMode QuantizeParams::RoundMode_MIN;
constexpr QuantizeParams_RoundMode QuantizeParams::RoundMode_MAX;
constexpr int QuantizeParams::RoundMode_ARRAYSIZE;
#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* LayerQuantizeParams_QuantMethod_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_MNN_5fcompression_2eproto);
return file_level_enum_descriptors_MNN_5fcompression_2eproto[1];
}
bool LayerQuantizeParams_QuantMethod_IsValid(int value) {
switch (value) {
case 0:
case 1:
case 2:
return true;
default:
return false;
}
}
#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr LayerQuantizeParams_QuantMethod LayerQuantizeParams::QAT;
constexpr LayerQuantizeParams_QuantMethod LayerQuantizeParams::OverflowAware;
constexpr LayerQuantizeParams_QuantMethod LayerQuantizeParams::WinogradAware;
constexpr LayerQuantizeParams_QuantMethod LayerQuantizeParams::QuantMethod_MIN;
constexpr LayerQuantizeParams_QuantMethod LayerQuantizeParams::QuantMethod_MAX;
constexpr int LayerQuantizeParams::QuantMethod_ARRAYSIZE;
#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PruneParams_PruneType_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_MNN_5fcompression_2eproto);
return file_level_enum_descriptors_MNN_5fcompression_2eproto[2];
}
bool PruneParams_PruneType_IsValid(int value) {
switch (value) {
case 0:
case 1:
case 2:
return true;
default:
return false;
}
}
#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr PruneParams_PruneType PruneParams::RANDOM;
constexpr PruneParams_PruneType PruneParams::SIMD_OC;
constexpr PruneParams_PruneType PruneParams::FILTER;
constexpr PruneParams_PruneType PruneParams::PruneType_MIN;
constexpr PruneParams_PruneType PruneParams::PruneType_MAX;
constexpr int PruneParams::PruneType_ARRAYSIZE;
#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CompressionAlgo_CompressionType_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_MNN_5fcompression_2eproto);
return file_level_enum_descriptors_MNN_5fcompression_2eproto[3];
}
bool CompressionAlgo_CompressionType_IsValid(int value) {
switch (value) {
case 0:
case 1:
return true;
default:
return false;
}
}
#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr CompressionAlgo_CompressionType CompressionAlgo::QUANTIZE;
constexpr CompressionAlgo_CompressionType CompressionAlgo::PRUNE;
constexpr CompressionAlgo_CompressionType CompressionAlgo::CompressionType_MIN;
constexpr CompressionAlgo_CompressionType CompressionAlgo::CompressionType_MAX;
constexpr int CompressionAlgo::CompressionType_ARRAYSIZE;
#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
// ===================================================================
class QuantizeParams::_Internal {
public:
using HasBits = decltype(std::declval<QuantizeParams>()._has_bits_);
static void set_has_round_mode(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
};
QuantizeParams::QuantizeParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
layer_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.QuantizeParams)
}
QuantizeParams::QuantizeParams(const QuantizeParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
layer_(from.layer_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
round_mode_ = from.round_mode_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.QuantizeParams)
}
inline void QuantizeParams::SharedCtor() {
round_mode_ = 1;
}
QuantizeParams::~QuantizeParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.QuantizeParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void QuantizeParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void QuantizeParams::ArenaDtor(void* object) {
QuantizeParams* _this = reinterpret_cast< QuantizeParams* >(object);
(void)_this;
}
void QuantizeParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void QuantizeParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void QuantizeParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.QuantizeParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
layer_.Clear();
round_mode_ = 1;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* QuantizeParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// optional .MNN.Compression.QuantizeParams.RoundMode round_mode = 1 [default = ROUND_AWAY_FROM_ZERO];
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
if (PROTOBUF_PREDICT_TRUE(::MNN::Compression::QuantizeParams_RoundMode_IsValid(val))) {
_internal_set_round_mode(static_cast<::MNN::Compression::QuantizeParams_RoundMode>(val));
} else {
::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
}
} else
goto handle_unusual;
continue;
// repeated .MNN.Compression.LayerQuantizeParams layer = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_layer(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* QuantizeParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.QuantizeParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// optional .MNN.Compression.QuantizeParams.RoundMode round_mode = 1 [default = ROUND_AWAY_FROM_ZERO];
if (cached_has_bits & 0x00000001u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1, this->_internal_round_mode(), target);
}
// repeated .MNN.Compression.LayerQuantizeParams layer = 4;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->_internal_layer_size()); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(4, this->_internal_layer(i), target, stream);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.QuantizeParams)
return target;
}
size_t QuantizeParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.QuantizeParams)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated .MNN.Compression.LayerQuantizeParams layer = 4;
total_size += 1UL * this->_internal_layer_size();
for (const auto& msg : this->layer_) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
// optional .MNN.Compression.QuantizeParams.RoundMode round_mode = 1 [default = ROUND_AWAY_FROM_ZERO];
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000001u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_round_mode());
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData QuantizeParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
QuantizeParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*QuantizeParams::GetClassData() const { return &_class_data_; }
void QuantizeParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<QuantizeParams *>(to)->MergeFrom(
static_cast<const QuantizeParams &>(from));
}
void QuantizeParams::MergeFrom(const QuantizeParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.QuantizeParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
layer_.MergeFrom(from.layer_);
if (from._internal_has_round_mode()) {
_internal_set_round_mode(from._internal_round_mode());
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void QuantizeParams::CopyFrom(const QuantizeParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.QuantizeParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool QuantizeParams::IsInitialized() const {
if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(layer_))
return false;
return true;
}
void QuantizeParams::InternalSwap(QuantizeParams* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
layer_.InternalSwap(&other->layer_);
swap(round_mode_, other->round_mode_);
}
::PROTOBUF_NAMESPACE_ID::Metadata QuantizeParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[0]);
}
// ===================================================================
class LayerQuantizeParams_ActivationParams::_Internal {
public:
using HasBits = decltype(std::declval<LayerQuantizeParams_ActivationParams>()._has_bits_);
static void set_has_name(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static void set_has_bits(HasBits* has_bits) {
(*has_bits)[0] |= 8u;
}
static void set_has_zero_point(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
static void set_has_clamp_min(HasBits* has_bits) {
(*has_bits)[0] |= 16u;
}
static void set_has_clamp_max(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static bool MissingRequiredFields(const HasBits& has_bits) {
return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
}
};
LayerQuantizeParams_ActivationParams::LayerQuantizeParams_ActivationParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
scales_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams.ActivationParams)
}
LayerQuantizeParams_ActivationParams::LayerQuantizeParams_ActivationParams(const LayerQuantizeParams_ActivationParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
scales_(from.scales_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (from._internal_has_name()) {
name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
GetArenaForAllocation());
}
::memcpy(&zero_point_, &from.zero_point_,
static_cast<size_t>(reinterpret_cast<char*>(&clamp_min_) -
reinterpret_cast<char*>(&zero_point_)) + sizeof(clamp_min_));
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.ActivationParams)
}
inline void LayerQuantizeParams_ActivationParams::SharedCtor() {
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
zero_point_ = 0;
clamp_max_ = 127;
bits_ = 8;
clamp_min_ = -128;
}
LayerQuantizeParams_ActivationParams::~LayerQuantizeParams_ActivationParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams.ActivationParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LayerQuantizeParams_ActivationParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void LayerQuantizeParams_ActivationParams::ArenaDtor(void* object) {
LayerQuantizeParams_ActivationParams* _this = reinterpret_cast< LayerQuantizeParams_ActivationParams* >(object);
(void)_this;
}
void LayerQuantizeParams_ActivationParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LayerQuantizeParams_ActivationParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LayerQuantizeParams_ActivationParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams.ActivationParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
scales_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000001u) {
name_.ClearNonDefaultToEmpty();
}
if (cached_has_bits & 0x0000001eu) {
zero_point_ = 0;
clamp_max_ = 127;
bits_ = 8;
clamp_min_ = -128;
}
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LayerQuantizeParams_ActivationParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// required string name = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
auto str = _internal_mutable_name();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.ActivationParams.name");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 bits = 2 [default = 8];
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
_Internal::set_has_bits(&has_bits);
bits_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated float scales = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_scales(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
ptr += sizeof(float);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<29>(ptr));
} else if (static_cast<uint8_t>(tag) == 26) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_scales(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 zero_point = 4 [default = 0];
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
_Internal::set_has_zero_point(&has_bits);
zero_point_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 clamp_min = 5 [default = -128];
case 5:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
_Internal::set_has_clamp_min(&has_bits);
clamp_min_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 clamp_max = 6 [default = 127];
case 6:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
_Internal::set_has_clamp_max(&has_bits);
clamp_max_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LayerQuantizeParams_ActivationParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams.ActivationParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// required string name = 1;
if (cached_has_bits & 0x00000001u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LayerQuantizeParams.ActivationParams.name");
target = stream->WriteStringMaybeAliased(
1, this->_internal_name(), target);
}
// optional int32 bits = 2 [default = 8];
if (cached_has_bits & 0x00000008u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_bits(), target);
}
// repeated float scales = 3;
for (int i = 0, n = this->_internal_scales_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_scales(i), target);
}
// optional int32 zero_point = 4 [default = 0];
if (cached_has_bits & 0x00000002u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_zero_point(), target);
}
// optional int32 clamp_min = 5 [default = -128];
if (cached_has_bits & 0x00000010u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_clamp_min(), target);
}
// optional int32 clamp_max = 6 [default = 127];
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_clamp_max(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams.ActivationParams)
return target;
}
size_t LayerQuantizeParams_ActivationParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams.ActivationParams)
size_t total_size = 0;
// required string name = 1;
if (_internal_has_name()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_name());
}
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated float scales = 3;
{
unsigned int count = static_cast<unsigned int>(this->_internal_scales_size());
size_t data_size = 4UL * count;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_scales_size());
total_size += data_size;
}
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x0000001eu) {
// optional int32 zero_point = 4 [default = 0];
if (cached_has_bits & 0x00000002u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_zero_point());
}
// optional int32 clamp_max = 6 [default = 127];
if (cached_has_bits & 0x00000004u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_max());
}
// optional int32 bits = 2 [default = 8];
if (cached_has_bits & 0x00000008u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_bits());
}
// optional int32 clamp_min = 5 [default = -128];
if (cached_has_bits & 0x00000010u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_min());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams_ActivationParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LayerQuantizeParams_ActivationParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams_ActivationParams::GetClassData() const { return &_class_data_; }
void LayerQuantizeParams_ActivationParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LayerQuantizeParams_ActivationParams *>(to)->MergeFrom(
static_cast<const LayerQuantizeParams_ActivationParams &>(from));
}
void LayerQuantizeParams_ActivationParams::MergeFrom(const LayerQuantizeParams_ActivationParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams.ActivationParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
scales_.MergeFrom(from.scales_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x0000001fu) {
if (cached_has_bits & 0x00000001u) {
_internal_set_name(from._internal_name());
}
if (cached_has_bits & 0x00000002u) {
zero_point_ = from.zero_point_;
}
if (cached_has_bits & 0x00000004u) {
clamp_max_ = from.clamp_max_;
}
if (cached_has_bits & 0x00000008u) {
bits_ = from.bits_;
}
if (cached_has_bits & 0x00000010u) {
clamp_min_ = from.clamp_min_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LayerQuantizeParams_ActivationParams::CopyFrom(const LayerQuantizeParams_ActivationParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams.ActivationParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LayerQuantizeParams_ActivationParams::IsInitialized() const {
if (_Internal::MissingRequiredFields(_has_bits_)) return false;
return true;
}
void LayerQuantizeParams_ActivationParams::InternalSwap(LayerQuantizeParams_ActivationParams* other) {
using std::swap;
auto* lhs_arena = GetArenaForAllocation();
auto* rhs_arena = other->GetArenaForAllocation();
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
scales_.InternalSwap(&other->scales_);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
&name_, lhs_arena,
&other->name_, rhs_arena
);
swap(zero_point_, other->zero_point_);
swap(clamp_max_, other->clamp_max_);
swap(bits_, other->bits_);
swap(clamp_min_, other->clamp_min_);
}
::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_ActivationParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[1]);
}
// ===================================================================
class LayerQuantizeParams_WeightParams::_Internal {
public:
using HasBits = decltype(std::declval<LayerQuantizeParams_WeightParams>()._has_bits_);
static void set_has_name(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static void set_has_bits(HasBits* has_bits) {
(*has_bits)[0] |= 16u;
}
static void set_has_clamp_min(HasBits* has_bits) {
(*has_bits)[0] |= 32u;
}
static void set_has_clamp_max(HasBits* has_bits) {
(*has_bits)[0] |= 8u;
}
static void set_has_asymmetric(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
static void set_has_block_size(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static bool MissingRequiredFields(const HasBits& has_bits) {
return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
}
};
LayerQuantizeParams_WeightParams::LayerQuantizeParams_WeightParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
scales_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams.WeightParams)
}
LayerQuantizeParams_WeightParams::LayerQuantizeParams_WeightParams(const LayerQuantizeParams_WeightParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
scales_(from.scales_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (from._internal_has_name()) {
name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
GetArenaForAllocation());
}
::memcpy(&asymmetric_, &from.asymmetric_,
static_cast<size_t>(reinterpret_cast<char*>(&clamp_min_) -
reinterpret_cast<char*>(&asymmetric_)) + sizeof(clamp_min_));
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.WeightParams)
}
inline void LayerQuantizeParams_WeightParams::SharedCtor() {
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
reinterpret_cast<char*>(&asymmetric_) - reinterpret_cast<char*>(this)),
0, static_cast<size_t>(reinterpret_cast<char*>(&block_size_) -
reinterpret_cast<char*>(&asymmetric_)) + sizeof(block_size_));
clamp_max_ = 127;
bits_ = 8;
clamp_min_ = -128;
}
LayerQuantizeParams_WeightParams::~LayerQuantizeParams_WeightParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams.WeightParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LayerQuantizeParams_WeightParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void LayerQuantizeParams_WeightParams::ArenaDtor(void* object) {
LayerQuantizeParams_WeightParams* _this = reinterpret_cast< LayerQuantizeParams_WeightParams* >(object);
(void)_this;
}
void LayerQuantizeParams_WeightParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LayerQuantizeParams_WeightParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LayerQuantizeParams_WeightParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams.WeightParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
scales_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000001u) {
name_.ClearNonDefaultToEmpty();
}
if (cached_has_bits & 0x0000003eu) {
::memset(&asymmetric_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&block_size_) -
reinterpret_cast<char*>(&asymmetric_)) + sizeof(block_size_));
clamp_max_ = 127;
bits_ = 8;
clamp_min_ = -128;
}
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LayerQuantizeParams_WeightParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// required string name = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
auto str = _internal_mutable_name();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.WeightParams.name");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 bits = 2 [default = 8];
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
_Internal::set_has_bits(&has_bits);
bits_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated float scales = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_scales(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
ptr += sizeof(float);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<29>(ptr));
} else if (static_cast<uint8_t>(tag) == 26) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_scales(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 clamp_min = 4 [default = -128];
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
_Internal::set_has_clamp_min(&has_bits);
clamp_min_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 clamp_max = 5 [default = 127];
case 5:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
_Internal::set_has_clamp_max(&has_bits);
clamp_max_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional bool asymmetric = 6 [default = false];
case 6:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
_Internal::set_has_asymmetric(&has_bits);
asymmetric_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional int32 block_size = 7 [default = 0];
case 7:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
_Internal::set_has_block_size(&has_bits);
block_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LayerQuantizeParams_WeightParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams.WeightParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// required string name = 1;
if (cached_has_bits & 0x00000001u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LayerQuantizeParams.WeightParams.name");
target = stream->WriteStringMaybeAliased(
1, this->_internal_name(), target);
}
// optional int32 bits = 2 [default = 8];
if (cached_has_bits & 0x00000010u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_bits(), target);
}
// repeated float scales = 3;
for (int i = 0, n = this->_internal_scales_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_scales(i), target);
}
// optional int32 clamp_min = 4 [default = -128];
if (cached_has_bits & 0x00000020u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_clamp_min(), target);
}
// optional int32 clamp_max = 5 [default = 127];
if (cached_has_bits & 0x00000008u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_clamp_max(), target);
}
// optional bool asymmetric = 6 [default = false];
if (cached_has_bits & 0x00000002u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_asymmetric(), target);
}
// optional int32 block_size = 7 [default = 0];
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_block_size(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams.WeightParams)
return target;
}
size_t LayerQuantizeParams_WeightParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams.WeightParams)
size_t total_size = 0;
// required string name = 1;
if (_internal_has_name()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_name());
}
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated float scales = 3;
{
unsigned int count = static_cast<unsigned int>(this->_internal_scales_size());
size_t data_size = 4UL * count;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_scales_size());
total_size += data_size;
}
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x0000003eu) {
// optional bool asymmetric = 6 [default = false];
if (cached_has_bits & 0x00000002u) {
total_size += 1 + 1;
}
// optional int32 block_size = 7 [default = 0];
if (cached_has_bits & 0x00000004u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_block_size());
}
// optional int32 clamp_max = 5 [default = 127];
if (cached_has_bits & 0x00000008u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_max());
}
// optional int32 bits = 2 [default = 8];
if (cached_has_bits & 0x00000010u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_bits());
}
// optional int32 clamp_min = 4 [default = -128];
if (cached_has_bits & 0x00000020u) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_min());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams_WeightParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LayerQuantizeParams_WeightParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams_WeightParams::GetClassData() const { return &_class_data_; }
void LayerQuantizeParams_WeightParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LayerQuantizeParams_WeightParams *>(to)->MergeFrom(
static_cast<const LayerQuantizeParams_WeightParams &>(from));
}
void LayerQuantizeParams_WeightParams::MergeFrom(const LayerQuantizeParams_WeightParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams.WeightParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
scales_.MergeFrom(from.scales_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x0000003fu) {
if (cached_has_bits & 0x00000001u) {
_internal_set_name(from._internal_name());
}
if (cached_has_bits & 0x00000002u) {
asymmetric_ = from.asymmetric_;
}
if (cached_has_bits & 0x00000004u) {
block_size_ = from.block_size_;
}
if (cached_has_bits & 0x00000008u) {
clamp_max_ = from.clamp_max_;
}
if (cached_has_bits & 0x00000010u) {
bits_ = from.bits_;
}
if (cached_has_bits & 0x00000020u) {
clamp_min_ = from.clamp_min_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LayerQuantizeParams_WeightParams::CopyFrom(const LayerQuantizeParams_WeightParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams.WeightParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LayerQuantizeParams_WeightParams::IsInitialized() const {
if (_Internal::MissingRequiredFields(_has_bits_)) return false;
return true;
}
void LayerQuantizeParams_WeightParams::InternalSwap(LayerQuantizeParams_WeightParams* other) {
using std::swap;
auto* lhs_arena = GetArenaForAllocation();
auto* rhs_arena = other->GetArenaForAllocation();
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
scales_.InternalSwap(&other->scales_);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
&name_, lhs_arena,
&other->name_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_WeightParams, block_size_)
+ sizeof(LayerQuantizeParams_WeightParams::block_size_)
- PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_WeightParams, asymmetric_)>(
reinterpret_cast<char*>(&asymmetric_),
reinterpret_cast<char*>(&other->asymmetric_));
swap(clamp_max_, other->clamp_max_);
swap(bits_, other->bits_);
swap(clamp_min_, other->clamp_min_);
}
::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_WeightParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[2]);
}
// ===================================================================
class LayerQuantizeParams_WinogradParams::_Internal {
public:
using HasBits = decltype(std::declval<LayerQuantizeParams_WinogradParams>()._has_bits_);
static void set_has_version(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static bool MissingRequiredFields(const HasBits& has_bits) {
return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
}
};
LayerQuantizeParams_WinogradParams::LayerQuantizeParams_WinogradParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
units_attr_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams.WinogradParams)
}
LayerQuantizeParams_WinogradParams::LayerQuantizeParams_WinogradParams(const LayerQuantizeParams_WinogradParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
units_attr_(from.units_attr_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
version_ = from.version_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.WinogradParams)
}
inline void LayerQuantizeParams_WinogradParams::SharedCtor() {
version_ = 0;
}
LayerQuantizeParams_WinogradParams::~LayerQuantizeParams_WinogradParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams.WinogradParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LayerQuantizeParams_WinogradParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void LayerQuantizeParams_WinogradParams::ArenaDtor(void* object) {
LayerQuantizeParams_WinogradParams* _this = reinterpret_cast< LayerQuantizeParams_WinogradParams* >(object);
(void)_this;
}
void LayerQuantizeParams_WinogradParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LayerQuantizeParams_WinogradParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LayerQuantizeParams_WinogradParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams.WinogradParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
units_attr_.Clear();
version_ = 0;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LayerQuantizeParams_WinogradParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// required int32 version = 1 [default = 0];
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
_Internal::set_has_version(&has_bits);
version_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated int32 units_attr = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_units_attr(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<32>(ptr));
} else if (static_cast<uint8_t>(tag) == 34) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_units_attr(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LayerQuantizeParams_WinogradParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams.WinogradParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// required int32 version = 1 [default = 0];
if (cached_has_bits & 0x00000001u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_version(), target);
}
// repeated int32 units_attr = 4;
for (int i = 0, n = this->_internal_units_attr_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_units_attr(i), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams.WinogradParams)
return target;
}
size_t LayerQuantizeParams_WinogradParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams.WinogradParams)
size_t total_size = 0;
// required int32 version = 1 [default = 0];
if (_internal_has_version()) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_version());
}
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated int32 units_attr = 4;
{
size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
Int32Size(this->units_attr_);
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_units_attr_size());
total_size += data_size;
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams_WinogradParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LayerQuantizeParams_WinogradParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams_WinogradParams::GetClassData() const { return &_class_data_; }
void LayerQuantizeParams_WinogradParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LayerQuantizeParams_WinogradParams *>(to)->MergeFrom(
static_cast<const LayerQuantizeParams_WinogradParams &>(from));
}
void LayerQuantizeParams_WinogradParams::MergeFrom(const LayerQuantizeParams_WinogradParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams.WinogradParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
units_attr_.MergeFrom(from.units_attr_);
if (from._internal_has_version()) {
_internal_set_version(from._internal_version());
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LayerQuantizeParams_WinogradParams::CopyFrom(const LayerQuantizeParams_WinogradParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams.WinogradParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LayerQuantizeParams_WinogradParams::IsInitialized() const {
if (_Internal::MissingRequiredFields(_has_bits_)) return false;
return true;
}
void LayerQuantizeParams_WinogradParams::InternalSwap(LayerQuantizeParams_WinogradParams* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
units_attr_.InternalSwap(&other->units_attr_);
swap(version_, other->version_);
}
::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_WinogradParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[3]);
}
// ===================================================================
class LayerQuantizeParams_ConvolutionInfo::_Internal {
public:
using HasBits = decltype(std::declval<LayerQuantizeParams_ConvolutionInfo>()._has_bits_);
static void set_has_input_channel(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static void set_has_output_channel(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
static bool MissingRequiredFields(const HasBits& has_bits) {
return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
}
};
LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
kernel_size_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
}
LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo(const LayerQuantizeParams_ConvolutionInfo& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
kernel_size_(from.kernel_size_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
::memcpy(&input_channel_, &from.input_channel_,
static_cast<size_t>(reinterpret_cast<char*>(&output_channel_) -
reinterpret_cast<char*>(&input_channel_)) + sizeof(output_channel_));
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
}
inline void LayerQuantizeParams_ConvolutionInfo::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
reinterpret_cast<char*>(&input_channel_) - reinterpret_cast<char*>(this)),
0, static_cast<size_t>(reinterpret_cast<char*>(&output_channel_) -
reinterpret_cast<char*>(&input_channel_)) + sizeof(output_channel_));
}
LayerQuantizeParams_ConvolutionInfo::~LayerQuantizeParams_ConvolutionInfo() {
// @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LayerQuantizeParams_ConvolutionInfo::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void LayerQuantizeParams_ConvolutionInfo::ArenaDtor(void* object) {
LayerQuantizeParams_ConvolutionInfo* _this = reinterpret_cast< LayerQuantizeParams_ConvolutionInfo* >(object);
(void)_this;
}
void LayerQuantizeParams_ConvolutionInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LayerQuantizeParams_ConvolutionInfo::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LayerQuantizeParams_ConvolutionInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
kernel_size_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000003u) {
::memset(&input_channel_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&output_channel_) -
reinterpret_cast<char*>(&input_channel_)) + sizeof(output_channel_));
}
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LayerQuantizeParams_ConvolutionInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// required int32 input_channel = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
_Internal::set_has_input_channel(&has_bits);
input_channel_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// required int32 output_channel = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
_Internal::set_has_output_channel(&has_bits);
output_channel_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated int32 kernel_size = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_kernel_size(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<24>(ptr));
} else if (static_cast<uint8_t>(tag) == 26) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_kernel_size(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LayerQuantizeParams_ConvolutionInfo::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// required int32 input_channel = 1;
if (cached_has_bits & 0x00000001u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_input_channel(), target);
}
// required int32 output_channel = 2;
if (cached_has_bits & 0x00000002u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_output_channel(), target);
}
// repeated int32 kernel_size = 3;
for (int i = 0, n = this->_internal_kernel_size_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_kernel_size(i), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
return target;
}
size_t LayerQuantizeParams_ConvolutionInfo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
size_t total_size = 0;
if (_internal_has_input_channel()) {
// required int32 input_channel = 1;
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_input_channel());
}
if (_internal_has_output_channel()) {
// required int32 output_channel = 2;
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_output_channel());
}
return total_size;
}
size_t LayerQuantizeParams_ConvolutionInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
size_t total_size = 0;
if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) { // All required fields are present.
// required int32 input_channel = 1;
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_input_channel());
// required int32 output_channel = 2;
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_output_channel());
} else {
total_size += RequiredFieldsByteSizeFallback();
}
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated int32 kernel_size = 3;
{
size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
Int32Size(this->kernel_size_);
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_kernel_size_size());
total_size += data_size;
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams_ConvolutionInfo::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LayerQuantizeParams_ConvolutionInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams_ConvolutionInfo::GetClassData() const { return &_class_data_; }
void LayerQuantizeParams_ConvolutionInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LayerQuantizeParams_ConvolutionInfo *>(to)->MergeFrom(
static_cast<const LayerQuantizeParams_ConvolutionInfo &>(from));
}
void LayerQuantizeParams_ConvolutionInfo::MergeFrom(const LayerQuantizeParams_ConvolutionInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
kernel_size_.MergeFrom(from.kernel_size_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x00000003u) {
if (cached_has_bits & 0x00000001u) {
input_channel_ = from.input_channel_;
}
if (cached_has_bits & 0x00000002u) {
output_channel_ = from.output_channel_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LayerQuantizeParams_ConvolutionInfo::CopyFrom(const LayerQuantizeParams_ConvolutionInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LayerQuantizeParams_ConvolutionInfo::IsInitialized() const {
if (_Internal::MissingRequiredFields(_has_bits_)) return false;
return true;
}
void LayerQuantizeParams_ConvolutionInfo::InternalSwap(LayerQuantizeParams_ConvolutionInfo* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
kernel_size_.InternalSwap(&other->kernel_size_);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_ConvolutionInfo, output_channel_)
+ sizeof(LayerQuantizeParams_ConvolutionInfo::output_channel_)
- PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_ConvolutionInfo, input_channel_)>(
reinterpret_cast<char*>(&input_channel_),
reinterpret_cast<char*>(&other->input_channel_));
}
::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_ConvolutionInfo::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[4]);
}
// ===================================================================
class LayerQuantizeParams::_Internal {
public:
using HasBits = decltype(std::declval<LayerQuantizeParams>()._has_bits_);
static void set_has_method(HasBits* has_bits) {
(*has_bits)[0] |= 16u;
}
static const ::MNN::Compression::LayerQuantizeParams_WinogradParams& wino_params(const LayerQuantizeParams* msg);
static void set_has_wino_params(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static void set_has_op_name(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static void set_has_subgraph_name(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
static const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& conv(const LayerQuantizeParams* msg);
static void set_has_conv(HasBits* has_bits) {
(*has_bits)[0] |= 8u;
}
};
const ::MNN::Compression::LayerQuantizeParams_WinogradParams&
LayerQuantizeParams::_Internal::wino_params(const LayerQuantizeParams* msg) {
return *msg->wino_params_;
}
const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo&
LayerQuantizeParams::_Internal::conv(const LayerQuantizeParams* msg) {
return *msg->conv_;
}
LayerQuantizeParams::LayerQuantizeParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
input_(arena),
weight_(arena),
output_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams)
}
LayerQuantizeParams::LayerQuantizeParams(const LayerQuantizeParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
input_(from.input_),
weight_(from.weight_),
output_(from.output_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
op_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (from._internal_has_op_name()) {
op_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_op_name(),
GetArenaForAllocation());
}
subgraph_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (from._internal_has_subgraph_name()) {
subgraph_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_subgraph_name(),
GetArenaForAllocation());
}
if (from._internal_has_wino_params()) {
wino_params_ = new ::MNN::Compression::LayerQuantizeParams_WinogradParams(*from.wino_params_);
} else {
wino_params_ = nullptr;
}
if (from._internal_has_conv()) {
conv_ = new ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo(*from.conv_);
} else {
conv_ = nullptr;
}
method_ = from.method_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams)
}
inline void LayerQuantizeParams::SharedCtor() {
op_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
subgraph_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
reinterpret_cast<char*>(&wino_params_) - reinterpret_cast<char*>(this)),
0, static_cast<size_t>(reinterpret_cast<char*>(&method_) -
reinterpret_cast<char*>(&wino_params_)) + sizeof(method_));
}
LayerQuantizeParams::~LayerQuantizeParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LayerQuantizeParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
op_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
subgraph_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
if (this != internal_default_instance()) delete wino_params_;
if (this != internal_default_instance()) delete conv_;
}
void LayerQuantizeParams::ArenaDtor(void* object) {
LayerQuantizeParams* _this = reinterpret_cast< LayerQuantizeParams* >(object);
(void)_this;
}
void LayerQuantizeParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LayerQuantizeParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LayerQuantizeParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
input_.Clear();
weight_.Clear();
output_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x0000000fu) {
if (cached_has_bits & 0x00000001u) {
op_name_.ClearNonDefaultToEmpty();
}
if (cached_has_bits & 0x00000002u) {
subgraph_name_.ClearNonDefaultToEmpty();
}
if (cached_has_bits & 0x00000004u) {
GOOGLE_DCHECK(wino_params_ != nullptr);
wino_params_->Clear();
}
if (cached_has_bits & 0x00000008u) {
GOOGLE_DCHECK(conv_ != nullptr);
conv_->Clear();
}
}
method_ = 0;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LayerQuantizeParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams input = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_input(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
} else
goto handle_unusual;
continue;
// repeated .MNN.Compression.LayerQuantizeParams.WeightParams weight = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_weight(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
} else
goto handle_unusual;
continue;
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams output = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_output(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT];
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
if (PROTOBUF_PREDICT_TRUE(::MNN::Compression::LayerQuantizeParams_QuantMethod_IsValid(val))) {
_internal_set_method(static_cast<::MNN::Compression::LayerQuantizeParams_QuantMethod>(val));
} else {
::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(4, val, mutable_unknown_fields());
}
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5;
case 5:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
ptr = ctx->ParseMessage(_internal_mutable_wino_params(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional string op_name = 6;
case 6:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
auto str = _internal_mutable_op_name();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.op_name");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional string subgraph_name = 7;
case 7:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
auto str = _internal_mutable_subgraph_name();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.subgraph_name");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8;
case 8:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
ptr = ctx->ParseMessage(_internal_mutable_conv(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LayerQuantizeParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams input = 1;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->_internal_input_size()); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(1, this->_internal_input(i), target, stream);
}
// repeated .MNN.Compression.LayerQuantizeParams.WeightParams weight = 2;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->_internal_weight_size()); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(2, this->_internal_weight(i), target, stream);
}
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams output = 3;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->_internal_output_size()); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(3, this->_internal_output(i), target, stream);
}
cached_has_bits = _has_bits_[0];
// optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT];
if (cached_has_bits & 0x00000010u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
4, this->_internal_method(), target);
}
// optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5;
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
5, _Internal::wino_params(this), target, stream);
}
// optional string op_name = 6;
if (cached_has_bits & 0x00000001u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_op_name().data(), static_cast<int>(this->_internal_op_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LayerQuantizeParams.op_name");
target = stream->WriteStringMaybeAliased(
6, this->_internal_op_name(), target);
}
// optional string subgraph_name = 7;
if (cached_has_bits & 0x00000002u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_subgraph_name().data(), static_cast<int>(this->_internal_subgraph_name().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LayerQuantizeParams.subgraph_name");
target = stream->WriteStringMaybeAliased(
7, this->_internal_subgraph_name(), target);
}
// optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8;
if (cached_has_bits & 0x00000008u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
8, _Internal::conv(this), target, stream);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams)
return target;
}
size_t LayerQuantizeParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams input = 1;
total_size += 1UL * this->_internal_input_size();
for (const auto& msg : this->input_) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
// repeated .MNN.Compression.LayerQuantizeParams.WeightParams weight = 2;
total_size += 1UL * this->_internal_weight_size();
for (const auto& msg : this->weight_) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
// repeated .MNN.Compression.LayerQuantizeParams.ActivationParams output = 3;
total_size += 1UL * this->_internal_output_size();
for (const auto& msg : this->output_) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x0000001fu) {
// optional string op_name = 6;
if (cached_has_bits & 0x00000001u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_op_name());
}
// optional string subgraph_name = 7;
if (cached_has_bits & 0x00000002u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_subgraph_name());
}
// optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5;
if (cached_has_bits & 0x00000004u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*wino_params_);
}
// optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8;
if (cached_has_bits & 0x00000008u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*conv_);
}
// optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT];
if (cached_has_bits & 0x00000010u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_method());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LayerQuantizeParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams::GetClassData() const { return &_class_data_; }
void LayerQuantizeParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LayerQuantizeParams *>(to)->MergeFrom(
static_cast<const LayerQuantizeParams &>(from));
}
void LayerQuantizeParams::MergeFrom(const LayerQuantizeParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
input_.MergeFrom(from.input_);
weight_.MergeFrom(from.weight_);
output_.MergeFrom(from.output_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x0000001fu) {
if (cached_has_bits & 0x00000001u) {
_internal_set_op_name(from._internal_op_name());
}
if (cached_has_bits & 0x00000002u) {
_internal_set_subgraph_name(from._internal_subgraph_name());
}
if (cached_has_bits & 0x00000004u) {
_internal_mutable_wino_params()->::MNN::Compression::LayerQuantizeParams_WinogradParams::MergeFrom(from._internal_wino_params());
}
if (cached_has_bits & 0x00000008u) {
_internal_mutable_conv()->::MNN::Compression::LayerQuantizeParams_ConvolutionInfo::MergeFrom(from._internal_conv());
}
if (cached_has_bits & 0x00000010u) {
method_ = from.method_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LayerQuantizeParams::CopyFrom(const LayerQuantizeParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LayerQuantizeParams::IsInitialized() const {
if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(input_))
return false;
if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(weight_))
return false;
if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(output_))
return false;
if (_internal_has_wino_params()) {
if (!wino_params_->IsInitialized()) return false;
}
if (_internal_has_conv()) {
if (!conv_->IsInitialized()) return false;
}
return true;
}
void LayerQuantizeParams::InternalSwap(LayerQuantizeParams* other) {
using std::swap;
auto* lhs_arena = GetArenaForAllocation();
auto* rhs_arena = other->GetArenaForAllocation();
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
input_.InternalSwap(&other->input_);
weight_.InternalSwap(&other->weight_);
output_.InternalSwap(&other->output_);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
&op_name_, lhs_arena,
&other->op_name_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
&subgraph_name_, lhs_arena,
&other->subgraph_name_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(LayerQuantizeParams, method_)
+ sizeof(LayerQuantizeParams::method_)
- PROTOBUF_FIELD_OFFSET(LayerQuantizeParams, wino_params_)>(
reinterpret_cast<char*>(&wino_params_),
reinterpret_cast<char*>(&other->wino_params_));
}
::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[5]);
}
// ===================================================================
class LevelPrunerParams::_Internal {
public:
};
LevelPrunerParams::LevelPrunerParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
weight_tensor_names_(arena),
prune_ratios_(arena),
layer_names_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.LevelPrunerParams)
}
LevelPrunerParams::LevelPrunerParams(const LevelPrunerParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
weight_tensor_names_(from.weight_tensor_names_),
prune_ratios_(from.prune_ratios_),
layer_names_(from.layer_names_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
// @@protoc_insertion_point(copy_constructor:MNN.Compression.LevelPrunerParams)
}
inline void LevelPrunerParams::SharedCtor() {
}
LevelPrunerParams::~LevelPrunerParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.LevelPrunerParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void LevelPrunerParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void LevelPrunerParams::ArenaDtor(void* object) {
LevelPrunerParams* _this = reinterpret_cast< LevelPrunerParams* >(object);
(void)_this;
}
void LevelPrunerParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LevelPrunerParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void LevelPrunerParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.LevelPrunerParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
weight_tensor_names_.Clear();
prune_ratios_.Clear();
layer_names_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* LevelPrunerParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// repeated string weight_tensor_names = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
ptr -= 1;
do {
ptr += 1;
auto str = _internal_add_weight_tensor_names();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LevelPrunerParams.weight_tensor_names");
#endif // !NDEBUG
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
} else
goto handle_unusual;
continue;
// repeated float prune_ratios = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_prune_ratios(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
ptr += sizeof(float);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<21>(ptr));
} else if (static_cast<uint8_t>(tag) == 18) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_prune_ratios(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated string layer_names = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
ptr -= 1;
do {
ptr += 1;
auto str = _internal_add_layer_names();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LevelPrunerParams.layer_names");
#endif // !NDEBUG
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* LevelPrunerParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LevelPrunerParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// repeated string weight_tensor_names = 1;
for (int i = 0, n = this->_internal_weight_tensor_names_size(); i < n; i++) {
const auto& s = this->_internal_weight_tensor_names(i);
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
s.data(), static_cast<int>(s.length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LevelPrunerParams.weight_tensor_names");
target = stream->WriteString(1, s, target);
}
// repeated float prune_ratios = 2;
for (int i = 0, n = this->_internal_prune_ratios_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_prune_ratios(i), target);
}
// repeated string layer_names = 3;
for (int i = 0, n = this->_internal_layer_names_size(); i < n; i++) {
const auto& s = this->_internal_layer_names(i);
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
s.data(), static_cast<int>(s.length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.LevelPrunerParams.layer_names");
target = stream->WriteString(3, s, target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LevelPrunerParams)
return target;
}
size_t LevelPrunerParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LevelPrunerParams)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated string weight_tensor_names = 1;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(weight_tensor_names_.size());
for (int i = 0, n = weight_tensor_names_.size(); i < n; i++) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
weight_tensor_names_.Get(i));
}
// repeated float prune_ratios = 2;
{
unsigned int count = static_cast<unsigned int>(this->_internal_prune_ratios_size());
size_t data_size = 4UL * count;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_prune_ratios_size());
total_size += data_size;
}
// repeated string layer_names = 3;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(layer_names_.size());
for (int i = 0, n = layer_names_.size(); i < n; i++) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
layer_names_.Get(i));
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LevelPrunerParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
LevelPrunerParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LevelPrunerParams::GetClassData() const { return &_class_data_; }
void LevelPrunerParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<LevelPrunerParams *>(to)->MergeFrom(
static_cast<const LevelPrunerParams &>(from));
}
void LevelPrunerParams::MergeFrom(const LevelPrunerParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LevelPrunerParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
weight_tensor_names_.MergeFrom(from.weight_tensor_names_);
prune_ratios_.MergeFrom(from.prune_ratios_);
layer_names_.MergeFrom(from.layer_names_);
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void LevelPrunerParams::CopyFrom(const LevelPrunerParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LevelPrunerParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool LevelPrunerParams::IsInitialized() const {
return true;
}
void LevelPrunerParams::InternalSwap(LevelPrunerParams* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
weight_tensor_names_.InternalSwap(&other->weight_tensor_names_);
prune_ratios_.InternalSwap(&other->prune_ratios_);
layer_names_.InternalSwap(&other->layer_names_);
}
::PROTOBUF_NAMESPACE_ID::Metadata LevelPrunerParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[6]);
}
// ===================================================================
class SIMDOCPrunerParams::_Internal {
public:
};
SIMDOCPrunerParams::SIMDOCPrunerParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
weight_tensor_names_(arena),
prune_ratios_(arena),
layer_names_(arena),
oc_blocks_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.SIMDOCPrunerParams)
}
SIMDOCPrunerParams::SIMDOCPrunerParams(const SIMDOCPrunerParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
weight_tensor_names_(from.weight_tensor_names_),
prune_ratios_(from.prune_ratios_),
layer_names_(from.layer_names_),
oc_blocks_(from.oc_blocks_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
// @@protoc_insertion_point(copy_constructor:MNN.Compression.SIMDOCPrunerParams)
}
inline void SIMDOCPrunerParams::SharedCtor() {
}
SIMDOCPrunerParams::~SIMDOCPrunerParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.SIMDOCPrunerParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void SIMDOCPrunerParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void SIMDOCPrunerParams::ArenaDtor(void* object) {
SIMDOCPrunerParams* _this = reinterpret_cast< SIMDOCPrunerParams* >(object);
(void)_this;
}
void SIMDOCPrunerParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SIMDOCPrunerParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void SIMDOCPrunerParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.SIMDOCPrunerParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
weight_tensor_names_.Clear();
prune_ratios_.Clear();
layer_names_.Clear();
oc_blocks_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* SIMDOCPrunerParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// repeated string weight_tensor_names = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
ptr -= 1;
do {
ptr += 1;
auto str = _internal_add_weight_tensor_names();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.SIMDOCPrunerParams.weight_tensor_names");
#endif // !NDEBUG
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
} else
goto handle_unusual;
continue;
// repeated float prune_ratios = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_prune_ratios(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
ptr += sizeof(float);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<21>(ptr));
} else if (static_cast<uint8_t>(tag) == 18) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_prune_ratios(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated string layer_names = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
ptr -= 1;
do {
ptr += 1;
auto str = _internal_add_layer_names();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.SIMDOCPrunerParams.layer_names");
#endif // !NDEBUG
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
} else
goto handle_unusual;
continue;
// repeated int32 oc_blocks = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
ptr -= 1;
do {
ptr += 1;
_internal_add_oc_blocks(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<32>(ptr));
} else if (static_cast<uint8_t>(tag) == 34) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_oc_blocks(), ptr, ctx);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* SIMDOCPrunerParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.SIMDOCPrunerParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
// repeated string weight_tensor_names = 1;
for (int i = 0, n = this->_internal_weight_tensor_names_size(); i < n; i++) {
const auto& s = this->_internal_weight_tensor_names(i);
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
s.data(), static_cast<int>(s.length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.SIMDOCPrunerParams.weight_tensor_names");
target = stream->WriteString(1, s, target);
}
// repeated float prune_ratios = 2;
for (int i = 0, n = this->_internal_prune_ratios_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_prune_ratios(i), target);
}
// repeated string layer_names = 3;
for (int i = 0, n = this->_internal_layer_names_size(); i < n; i++) {
const auto& s = this->_internal_layer_names(i);
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
s.data(), static_cast<int>(s.length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.SIMDOCPrunerParams.layer_names");
target = stream->WriteString(3, s, target);
}
// repeated int32 oc_blocks = 4;
for (int i = 0, n = this->_internal_oc_blocks_size(); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_oc_blocks(i), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.SIMDOCPrunerParams)
return target;
}
size_t SIMDOCPrunerParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.SIMDOCPrunerParams)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated string weight_tensor_names = 1;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(weight_tensor_names_.size());
for (int i = 0, n = weight_tensor_names_.size(); i < n; i++) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
weight_tensor_names_.Get(i));
}
// repeated float prune_ratios = 2;
{
unsigned int count = static_cast<unsigned int>(this->_internal_prune_ratios_size());
size_t data_size = 4UL * count;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_prune_ratios_size());
total_size += data_size;
}
// repeated string layer_names = 3;
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(layer_names_.size());
for (int i = 0, n = layer_names_.size(); i < n; i++) {
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
layer_names_.Get(i));
}
// repeated int32 oc_blocks = 4;
{
size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
Int32Size(this->oc_blocks_);
total_size += 1 *
::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_oc_blocks_size());
total_size += data_size;
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SIMDOCPrunerParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
SIMDOCPrunerParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SIMDOCPrunerParams::GetClassData() const { return &_class_data_; }
void SIMDOCPrunerParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<SIMDOCPrunerParams *>(to)->MergeFrom(
static_cast<const SIMDOCPrunerParams &>(from));
}
void SIMDOCPrunerParams::MergeFrom(const SIMDOCPrunerParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.SIMDOCPrunerParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
weight_tensor_names_.MergeFrom(from.weight_tensor_names_);
prune_ratios_.MergeFrom(from.prune_ratios_);
layer_names_.MergeFrom(from.layer_names_);
oc_blocks_.MergeFrom(from.oc_blocks_);
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void SIMDOCPrunerParams::CopyFrom(const SIMDOCPrunerParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.SIMDOCPrunerParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool SIMDOCPrunerParams::IsInitialized() const {
return true;
}
void SIMDOCPrunerParams::InternalSwap(SIMDOCPrunerParams* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
weight_tensor_names_.InternalSwap(&other->weight_tensor_names_);
prune_ratios_.InternalSwap(&other->prune_ratios_);
layer_names_.InternalSwap(&other->layer_names_);
oc_blocks_.InternalSwap(&other->oc_blocks_);
}
::PROTOBUF_NAMESPACE_ID::Metadata SIMDOCPrunerParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[7]);
}
// ===================================================================
class PruneParams::_Internal {
public:
using HasBits = decltype(std::declval<PruneParams>()._has_bits_);
static void set_has_type(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static const ::MNN::Compression::LevelPrunerParams& level_pruner_params(const PruneParams* msg);
static void set_has_level_pruner_params(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static const ::MNN::Compression::SIMDOCPrunerParams& simd_oc_pruner_params(const PruneParams* msg);
static void set_has_simd_oc_pruner_params(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
};
const ::MNN::Compression::LevelPrunerParams&
PruneParams::_Internal::level_pruner_params(const PruneParams* msg) {
return *msg->level_pruner_params_;
}
const ::MNN::Compression::SIMDOCPrunerParams&
PruneParams::_Internal::simd_oc_pruner_params(const PruneParams* msg) {
return *msg->simd_oc_pruner_params_;
}
PruneParams::PruneParams(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.PruneParams)
}
PruneParams::PruneParams(const PruneParams& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
if (from._internal_has_level_pruner_params()) {
level_pruner_params_ = new ::MNN::Compression::LevelPrunerParams(*from.level_pruner_params_);
} else {
level_pruner_params_ = nullptr;
}
if (from._internal_has_simd_oc_pruner_params()) {
simd_oc_pruner_params_ = new ::MNN::Compression::SIMDOCPrunerParams(*from.simd_oc_pruner_params_);
} else {
simd_oc_pruner_params_ = nullptr;
}
type_ = from.type_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.PruneParams)
}
inline void PruneParams::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
reinterpret_cast<char*>(&level_pruner_params_) - reinterpret_cast<char*>(this)),
0, static_cast<size_t>(reinterpret_cast<char*>(&type_) -
reinterpret_cast<char*>(&level_pruner_params_)) + sizeof(type_));
}
PruneParams::~PruneParams() {
// @@protoc_insertion_point(destructor:MNN.Compression.PruneParams)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void PruneParams::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
if (this != internal_default_instance()) delete level_pruner_params_;
if (this != internal_default_instance()) delete simd_oc_pruner_params_;
}
void PruneParams::ArenaDtor(void* object) {
PruneParams* _this = reinterpret_cast< PruneParams* >(object);
(void)_this;
}
void PruneParams::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PruneParams::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void PruneParams::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.PruneParams)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000003u) {
if (cached_has_bits & 0x00000001u) {
GOOGLE_DCHECK(level_pruner_params_ != nullptr);
level_pruner_params_->Clear();
}
if (cached_has_bits & 0x00000002u) {
GOOGLE_DCHECK(simd_oc_pruner_params_ != nullptr);
simd_oc_pruner_params_->Clear();
}
}
type_ = 0;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* PruneParams::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// optional .MNN.Compression.PruneParams.PruneType type = 1 [default = RANDOM];
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
if (PROTOBUF_PREDICT_TRUE(::MNN::Compression::PruneParams_PruneType_IsValid(val))) {
_internal_set_type(static_cast<::MNN::Compression::PruneParams_PruneType>(val));
} else {
::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
}
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.LevelPrunerParams level_pruner_params = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
ptr = ctx->ParseMessage(_internal_mutable_level_pruner_params(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.SIMDOCPrunerParams simd_oc_pruner_params = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
ptr = ctx->ParseMessage(_internal_mutable_simd_oc_pruner_params(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* PruneParams::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.PruneParams)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// optional .MNN.Compression.PruneParams.PruneType type = 1 [default = RANDOM];
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1, this->_internal_type(), target);
}
// optional .MNN.Compression.LevelPrunerParams level_pruner_params = 2;
if (cached_has_bits & 0x00000001u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
2, _Internal::level_pruner_params(this), target, stream);
}
// optional .MNN.Compression.SIMDOCPrunerParams simd_oc_pruner_params = 3;
if (cached_has_bits & 0x00000002u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
3, _Internal::simd_oc_pruner_params(this), target, stream);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.PruneParams)
return target;
}
size_t PruneParams::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.PruneParams)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000007u) {
// optional .MNN.Compression.LevelPrunerParams level_pruner_params = 2;
if (cached_has_bits & 0x00000001u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*level_pruner_params_);
}
// optional .MNN.Compression.SIMDOCPrunerParams simd_oc_pruner_params = 3;
if (cached_has_bits & 0x00000002u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*simd_oc_pruner_params_);
}
// optional .MNN.Compression.PruneParams.PruneType type = 1 [default = RANDOM];
if (cached_has_bits & 0x00000004u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PruneParams::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
PruneParams::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PruneParams::GetClassData() const { return &_class_data_; }
void PruneParams::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<PruneParams *>(to)->MergeFrom(
static_cast<const PruneParams &>(from));
}
void PruneParams::MergeFrom(const PruneParams& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.PruneParams)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x00000007u) {
if (cached_has_bits & 0x00000001u) {
_internal_mutable_level_pruner_params()->::MNN::Compression::LevelPrunerParams::MergeFrom(from._internal_level_pruner_params());
}
if (cached_has_bits & 0x00000002u) {
_internal_mutable_simd_oc_pruner_params()->::MNN::Compression::SIMDOCPrunerParams::MergeFrom(from._internal_simd_oc_pruner_params());
}
if (cached_has_bits & 0x00000004u) {
type_ = from.type_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void PruneParams::CopyFrom(const PruneParams& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.PruneParams)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool PruneParams::IsInitialized() const {
return true;
}
void PruneParams::InternalSwap(PruneParams* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(PruneParams, type_)
+ sizeof(PruneParams::type_)
- PROTOBUF_FIELD_OFFSET(PruneParams, level_pruner_params_)>(
reinterpret_cast<char*>(&level_pruner_params_),
reinterpret_cast<char*>(&other->level_pruner_params_));
}
::PROTOBUF_NAMESPACE_ID::Metadata PruneParams::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[8]);
}
// ===================================================================
class CompressionAlgo::_Internal {
public:
using HasBits = decltype(std::declval<CompressionAlgo>()._has_bits_);
static void set_has_type(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static const ::MNN::Compression::QuantizeParams& quant_params(const CompressionAlgo* msg);
static void set_has_quant_params(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static const ::MNN::Compression::PruneParams& prune_params(const CompressionAlgo* msg);
static void set_has_prune_params(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
};
const ::MNN::Compression::QuantizeParams&
CompressionAlgo::_Internal::quant_params(const CompressionAlgo* msg) {
return *msg->quant_params_;
}
const ::MNN::Compression::PruneParams&
CompressionAlgo::_Internal::prune_params(const CompressionAlgo* msg) {
return *msg->prune_params_;
}
CompressionAlgo::CompressionAlgo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.CompressionAlgo)
}
CompressionAlgo::CompressionAlgo(const CompressionAlgo& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
if (from._internal_has_quant_params()) {
quant_params_ = new ::MNN::Compression::QuantizeParams(*from.quant_params_);
} else {
quant_params_ = nullptr;
}
if (from._internal_has_prune_params()) {
prune_params_ = new ::MNN::Compression::PruneParams(*from.prune_params_);
} else {
prune_params_ = nullptr;
}
type_ = from.type_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.CompressionAlgo)
}
inline void CompressionAlgo::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
reinterpret_cast<char*>(&quant_params_) - reinterpret_cast<char*>(this)),
0, static_cast<size_t>(reinterpret_cast<char*>(&type_) -
reinterpret_cast<char*>(&quant_params_)) + sizeof(type_));
}
CompressionAlgo::~CompressionAlgo() {
// @@protoc_insertion_point(destructor:MNN.Compression.CompressionAlgo)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void CompressionAlgo::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
if (this != internal_default_instance()) delete quant_params_;
if (this != internal_default_instance()) delete prune_params_;
}
void CompressionAlgo::ArenaDtor(void* object) {
CompressionAlgo* _this = reinterpret_cast< CompressionAlgo* >(object);
(void)_this;
}
void CompressionAlgo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CompressionAlgo::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void CompressionAlgo::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.CompressionAlgo)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000003u) {
if (cached_has_bits & 0x00000001u) {
GOOGLE_DCHECK(quant_params_ != nullptr);
quant_params_->Clear();
}
if (cached_has_bits & 0x00000002u) {
GOOGLE_DCHECK(prune_params_ != nullptr);
prune_params_->Clear();
}
}
type_ = 0;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* CompressionAlgo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// optional .MNN.Compression.CompressionAlgo.CompressionType type = 1 [default = QUANTIZE];
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
if (PROTOBUF_PREDICT_TRUE(::MNN::Compression::CompressionAlgo_CompressionType_IsValid(val))) {
_internal_set_type(static_cast<::MNN::Compression::CompressionAlgo_CompressionType>(val));
} else {
::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
}
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.QuantizeParams quant_params = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
ptr = ctx->ParseMessage(_internal_mutable_quant_params(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional .MNN.Compression.PruneParams prune_params = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
ptr = ctx->ParseMessage(_internal_mutable_prune_params(), ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* CompressionAlgo::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.CompressionAlgo)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// optional .MNN.Compression.CompressionAlgo.CompressionType type = 1 [default = QUANTIZE];
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1, this->_internal_type(), target);
}
// optional .MNN.Compression.QuantizeParams quant_params = 2;
if (cached_has_bits & 0x00000001u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
2, _Internal::quant_params(this), target, stream);
}
// optional .MNN.Compression.PruneParams prune_params = 3;
if (cached_has_bits & 0x00000002u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(
3, _Internal::prune_params(this), target, stream);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.CompressionAlgo)
return target;
}
size_t CompressionAlgo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.CompressionAlgo)
size_t total_size = 0;
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000007u) {
// optional .MNN.Compression.QuantizeParams quant_params = 2;
if (cached_has_bits & 0x00000001u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*quant_params_);
}
// optional .MNN.Compression.PruneParams prune_params = 3;
if (cached_has_bits & 0x00000002u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
*prune_params_);
}
// optional .MNN.Compression.CompressionAlgo.CompressionType type = 1 [default = QUANTIZE];
if (cached_has_bits & 0x00000004u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CompressionAlgo::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
CompressionAlgo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CompressionAlgo::GetClassData() const { return &_class_data_; }
void CompressionAlgo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<CompressionAlgo *>(to)->MergeFrom(
static_cast<const CompressionAlgo &>(from));
}
void CompressionAlgo::MergeFrom(const CompressionAlgo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.CompressionAlgo)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x00000007u) {
if (cached_has_bits & 0x00000001u) {
_internal_mutable_quant_params()->::MNN::Compression::QuantizeParams::MergeFrom(from._internal_quant_params());
}
if (cached_has_bits & 0x00000002u) {
_internal_mutable_prune_params()->::MNN::Compression::PruneParams::MergeFrom(from._internal_prune_params());
}
if (cached_has_bits & 0x00000004u) {
type_ = from.type_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void CompressionAlgo::CopyFrom(const CompressionAlgo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.CompressionAlgo)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool CompressionAlgo::IsInitialized() const {
if (_internal_has_quant_params()) {
if (!quant_params_->IsInitialized()) return false;
}
return true;
}
void CompressionAlgo::InternalSwap(CompressionAlgo* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(CompressionAlgo, type_)
+ sizeof(CompressionAlgo::type_)
- PROTOBUF_FIELD_OFFSET(CompressionAlgo, quant_params_)>(
reinterpret_cast<char*>(&quant_params_),
reinterpret_cast<char*>(&other->quant_params_));
}
::PROTOBUF_NAMESPACE_ID::Metadata CompressionAlgo::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[9]);
}
// ===================================================================
class Pipeline::_Internal {
public:
using HasBits = decltype(std::declval<Pipeline>()._has_bits_);
static void set_has_version(HasBits* has_bits) {
(*has_bits)[0] |= 1u;
}
static void set_has_mnn_uuid(HasBits* has_bits) {
(*has_bits)[0] |= 2u;
}
static void set_has_for_guide(HasBits* has_bits) {
(*has_bits)[0] |= 4u;
}
static bool MissingRequiredFields(const HasBits& has_bits) {
return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
}
};
const ::PROTOBUF_NAMESPACE_ID::internal::LazyString Pipeline::_i_give_permission_to_break_this_code_default_version_{{{"0.0.0", 5}}, {nullptr}};
Pipeline::Pipeline(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
algo_(arena) {
SharedCtor();
if (!is_message_owned) {
RegisterArenaDtor(arena);
}
// @@protoc_insertion_point(arena_constructor:MNN.Compression.Pipeline)
}
Pipeline::Pipeline(const Pipeline& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_has_bits_(from._has_bits_),
algo_(from.algo_) {
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
version_.UnsafeSetDefault(nullptr);
if (from._internal_has_version()) {
version_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::NonEmptyDefault{}, from._internal_version(),
GetArenaForAllocation());
}
mnn_uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
mnn_uuid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (from._internal_has_mnn_uuid()) {
mnn_uuid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_mnn_uuid(),
GetArenaForAllocation());
}
for_guide_ = from.for_guide_;
// @@protoc_insertion_point(copy_constructor:MNN.Compression.Pipeline)
}
inline void Pipeline::SharedCtor() {
version_.UnsafeSetDefault(nullptr);
mnn_uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
mnn_uuid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
for_guide_ = false;
}
Pipeline::~Pipeline() {
// @@protoc_insertion_point(destructor:MNN.Compression.Pipeline)
if (GetArenaForAllocation() != nullptr) return;
SharedDtor();
_internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
inline void Pipeline::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
version_.DestroyNoArena(nullptr);
mnn_uuid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void Pipeline::ArenaDtor(void* object) {
Pipeline* _this = reinterpret_cast< Pipeline* >(object);
(void)_this;
}
void Pipeline::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Pipeline::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
void Pipeline::Clear() {
// @@protoc_insertion_point(message_clear_start:MNN.Compression.Pipeline)
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
algo_.Clear();
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000003u) {
if (cached_has_bits & 0x00000001u) {
version_.ClearToDefault(::MNN::Compression::Pipeline::_i_give_permission_to_break_this_code_default_version_, GetArenaForAllocation());
}
if (cached_has_bits & 0x00000002u) {
mnn_uuid_.ClearNonDefaultToEmpty();
}
}
for_guide_ = false;
_has_bits_.Clear();
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* Pipeline::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
_Internal::HasBits has_bits{};
while (!ctx->Done(&ptr)) {
uint32_t tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
switch (tag >> 3) {
// required string version = 1 [default = "0.0.0"];
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
auto str = _internal_mutable_version();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.Pipeline.version");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// repeated .MNN.Compression.CompressionAlgo algo = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_algo(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
} else
goto handle_unusual;
continue;
// optional string mnn_uuid = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
auto str = _internal_mutable_mnn_uuid();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
#ifndef NDEBUG
::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.Pipeline.mnn_uuid");
#endif // !NDEBUG
CHK_(ptr);
} else
goto handle_unusual;
continue;
// optional bool for_guide = 4 [default = false];
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
_Internal::set_has_for_guide(&has_bits);
for_guide_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
handle_unusual:
if ((tag == 0) || ((tag & 7) == 4)) {
CHK_(ptr);
ctx->SetLastTag(tag);
goto message_done;
}
ptr = UnknownFieldParse(
tag,
_internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
ptr, ctx);
CHK_(ptr != nullptr);
} // while
message_done:
_has_bits_.Or(has_bits);
return ptr;
failure:
ptr = nullptr;
goto message_done;
#undef CHK_
}
uint8_t* Pipeline::_InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.Pipeline)
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
cached_has_bits = _has_bits_[0];
// required string version = 1 [default = "0.0.0"];
if (cached_has_bits & 0x00000001u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_version().data(), static_cast<int>(this->_internal_version().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.Pipeline.version");
target = stream->WriteStringMaybeAliased(
1, this->_internal_version(), target);
}
// repeated .MNN.Compression.CompressionAlgo algo = 2;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->_internal_algo_size()); i < n; i++) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(2, this->_internal_algo(i), target, stream);
}
// optional string mnn_uuid = 3;
if (cached_has_bits & 0x00000002u) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
this->_internal_mnn_uuid().data(), static_cast<int>(this->_internal_mnn_uuid().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
"MNN.Compression.Pipeline.mnn_uuid");
target = stream->WriteStringMaybeAliased(
3, this->_internal_mnn_uuid(), target);
}
// optional bool for_guide = 4 [default = false];
if (cached_has_bits & 0x00000004u) {
target = stream->EnsureSpace(target);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_for_guide(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.Pipeline)
return target;
}
size_t Pipeline::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.Pipeline)
size_t total_size = 0;
// required string version = 1 [default = "0.0.0"];
if (_internal_has_version()) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_version());
}
uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated .MNN.Compression.CompressionAlgo algo = 2;
total_size += 1UL * this->_internal_algo_size();
for (const auto& msg : this->algo_) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
cached_has_bits = _has_bits_[0];
if (cached_has_bits & 0x00000006u) {
// optional string mnn_uuid = 3;
if (cached_has_bits & 0x00000002u) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_mnn_uuid());
}
// optional bool for_guide = 4 [default = false];
if (cached_has_bits & 0x00000004u) {
total_size += 1 + 1;
}
}
return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Pipeline::_class_data_ = {
::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
Pipeline::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Pipeline::GetClassData() const { return &_class_data_; }
void Pipeline::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
const ::PROTOBUF_NAMESPACE_ID::Message& from) {
static_cast<Pipeline *>(to)->MergeFrom(
static_cast<const Pipeline &>(from));
}
void Pipeline::MergeFrom(const Pipeline& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.Pipeline)
GOOGLE_DCHECK_NE(&from, this);
uint32_t cached_has_bits = 0;
(void) cached_has_bits;
algo_.MergeFrom(from.algo_);
cached_has_bits = from._has_bits_[0];
if (cached_has_bits & 0x00000007u) {
if (cached_has_bits & 0x00000001u) {
_internal_set_version(from._internal_version());
}
if (cached_has_bits & 0x00000002u) {
_internal_set_mnn_uuid(from._internal_mnn_uuid());
}
if (cached_has_bits & 0x00000004u) {
for_guide_ = from.for_guide_;
}
_has_bits_[0] |= cached_has_bits;
}
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
void Pipeline::CopyFrom(const Pipeline& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.Pipeline)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool Pipeline::IsInitialized() const {
if (_Internal::MissingRequiredFields(_has_bits_)) return false;
if (!::PROTOBUF_NAMESPACE_ID::internal::AllAreInitialized(algo_))
return false;
return true;
}
void Pipeline::InternalSwap(Pipeline* other) {
using std::swap;
auto* lhs_arena = GetArenaForAllocation();
auto* rhs_arena = other->GetArenaForAllocation();
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
swap(_has_bits_[0], other->_has_bits_[0]);
algo_.InternalSwap(&other->algo_);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
nullptr,
&version_, lhs_arena,
&other->version_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
&mnn_uuid_, lhs_arena,
&other->mnn_uuid_, rhs_arena
);
swap(for_guide_, other->for_guide_);
}
::PROTOBUF_NAMESPACE_ID::Metadata Pipeline::GetMetadata() const {
return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
&descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once,
file_level_metadata_MNN_5fcompression_2eproto[10]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace Compression
} // namespace MNN
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::MNN::Compression::QuantizeParams* Arena::CreateMaybeMessage< ::MNN::Compression::QuantizeParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::QuantizeParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_ActivationParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_ActivationParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_ActivationParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_WeightParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_WeightParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_WeightParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_WinogradParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_WinogradParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_WinogradParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::LevelPrunerParams* Arena::CreateMaybeMessage< ::MNN::Compression::LevelPrunerParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::LevelPrunerParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::SIMDOCPrunerParams* Arena::CreateMaybeMessage< ::MNN::Compression::SIMDOCPrunerParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::SIMDOCPrunerParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::PruneParams* Arena::CreateMaybeMessage< ::MNN::Compression::PruneParams >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::PruneParams >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::CompressionAlgo* Arena::CreateMaybeMessage< ::MNN::Compression::CompressionAlgo >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::CompressionAlgo >(arena);
}
template<> PROTOBUF_NOINLINE ::MNN::Compression::Pipeline* Arena::CreateMaybeMessage< ::MNN::Compression::Pipeline >(Arena* arena) {
return Arena::CreateMessageInternal< ::MNN::Compression::Pipeline >(arena);
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>