* pnnx: store bool MemoryData attributes as raw int8
Keep bool constants as one byte per element and select MemoryData
load_type=3. Implement the reserved raw int8 ModelBin loading mode and
pad exported bool data to four bytes so subsequent weights stay aligned.
This preserves the byte representation used by the proposed logical ops.
Add regression coverage for scalar and padded bool exports in both fp16
modes, multidimensional MemoryData, raw int8 loading through reference
and copy readers, trailing fp32 weights, and missing padding. Document
the format.
Based on the bool attribute serialization fixes proposed in:
https://github.com/Tencent/ncnn/pull/6956https://github.com/Tencent/ncnn/pull/6866Fixes#6855
* tools: preserve byte MemoryData when optimizing models
Save MemoryData load_type so raw int8 constants retain their byte
representation after ModelWriter saves the model. Skip fusion paths that
interpret MemoryData as float32 when its elements are not four bytes.
This change does not add bool arithmetic support or automatic type
promotion. Byte bool storage is intended for future logical, comparison
and selection operators.
Validated ncnnoptimize save and reload for scalar and one-to-five-element
bool constants in fp32 and fp16 storage modes, preserving byte values
and element size in all 12 cases.
---------
Co-authored-by: ktz03 <2484593937@qq.com>
Co-authored-by: Giulio Corradi <53930027+giuliocorradi@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* quantize and dequantize tests
* unify activation and usability function
* drop NCNN_REQUANT cmake option, test dequantize requantize pack8, fix webassembly build
* benchmark use requantize int8 model
* feat(ncnnoptimize): replace denormals to zero on layers with weights
Co-authored-by: youngsoo.lee <youngsoo15.lee@gmail.com>
Co-authored-by: Restyled.io <commits@restyled.io>
* add ncnnoptimise cut net function
* add ncnnoptimise cut net function
* Restyled by clang-format
* Restyled by astyle
* Restyled by clang-format
* Restyled by astyle
Co-authored-by: chenty <admin@chenty.com>
Co-authored-by: Restyled.io <commits@restyled.io>
* support pytorch adaptive pool
* support onnx2ncnn adaptive pool convert
* support ncnnoptimize adaptive pool param write
* fix adaptive pool out_shape order
* fix adaptive pool out_shape order, H and W can be either a int
add test case, set support_vulkan = false Pooling_vulkan::create_pipeline
* review adaptive pool
* fix typo
* add adaptive pool forward in pooling_x86.cpp pooling_arm.cpp
fix out_w, out_h id naming convention
* fix typo
* don't support packing, bf16, int8, image for adaptive pool
* Restyled by clang-format
* Restyled by astyle
* Restyled by clang-format
* Restyled by astyle
Co-authored-by: Restyled.io <commits@restyled.io>
* update roialign
* update tool for roialign
* fix ceil for roialign
* fix ios build
* fix
* fix
* make it compatibile with the old version
* fix ios build
* trigger CI
* fix test
* order
* build
* remove code
* merge roialign
* accelerate ROIAlign
* update note
* rename func
* roialign version
* trigger CI
* fix roialign
* use ref for pre-calc in roialign
* retrigger CI
* pre-alloc
* use Mat class for Shape description
* shape specialization constant in compute shader
* wip
* wip
* test forward_inplace, add binaryop unaryop sigmoid test
* fix arm unaryop test
* fix arm binaryop test
* make shape hint optional, cast int8 to fp32, add cast test
* wip
* follow the good and old local size setting for conv1x1
* the optimal local size rewrite
* fix build on msvc
* add permute shader for all packing layout, add permute test
* concat and slice patial shape constant, slice test
* fix slice test
* interp test
* add lrn test, test packing layout implicitly
* add eltwise test
* add normalize test
* add instancenorm test
* reorg shape constant
* simple local group size partition
* add shape constant param
* fix type conversion warning
* fix MSVC _CRT_SECURE_NO_DEPRECATE warning
* type conversion: missing one
* fix MSVC _CRT_SECURE_NO_DEPRECATE warning and type warning
* reformat
* convert google::protobuf::int64 to size_t to avoid type impl between msvc and gcc gap
* remove C++11 auto
* tab -> space