Ncnn Versions Save

ncnn is a high-performance neural network inference framework optimized for the mobile platform

20220420

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.4,ubuntu-18.04,ubuntu-20.04,vs2015,vs2017,vs2019,vs2022,emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

conv vulkan im2col+sgemm优化 conv vulkan winograd43优化 conv vulkan implicit gemm优化 deconv vulkan sgemm+col2im优化 conv/deconv vulkan local memory优化 conv vulkan 直接卷积unroll优化 改善conv vulkan winograd23/winograd43选择策略 融合conv vulkan winograd 前后的pad/crop到transform中 innerproduct vulkan 拆分两阶段优化 补全conv 1x1 vulkan任意packing 补全conv 3x3 winograd vulkan任意packing conv/deconv vulkan pack4 nvidia tensorcore优化 x86 sse/avx 数学函数优化(@Yoh-Z) unaryop x86 优化(@Yoh-Z) floor/ceil/abs x86 sse优化(@MouriNaruto) convoluition/convoluitiondepthwise/innerproduct/padding/pooling/interp/eltwise/crop/reshape/slice/hardsigmoid/swish/binaryop/clip/relu/sigmoid/unaryop x86 avx512优化 conv sgemm avx512优化 conv3x3 winograd avx512优化 deconvolution/deconvolutiondepthwise x86直接反卷积实现 softmax x86 sse/avx/avx512优化 quantize/dequantize/requantize mips msa优化 conv int8/convdw int8/innerproduct int8 mips msa优化 multiheadattention arm neon优化(@EdVince) softmax arm neon优化 conv3x3 winograd transform部分提出为可复用函数 x86 f16c指令集检测和分发 删除没什么用的avx2-fp16相关代码 simpleomp允许最多32个microtask参数 添加loongson mmi头文件和编译支持 新增deconv1d,deconv3d和对应的pnnx转换 修正老版本gcc的avx512编译参数问题 修正sigmoid x86在很大数值输入返回nan的问题 修正gpu推理convdw发生unlocked pool allocator destoryed too early的问题 避免mips msa推理时可能发生浮点数异常 batchnorm加载参数时避免除0异常 为新算子更新modelwriter copy_make_border添加reflect类型 mali g31/g52启用fp16 修复armhf工具链编译问题 global pooling强制使用fp32累加避免nan问题 修复某些android系统无法dlsym getauxval的问题 修正新版本moltenvk tanh兼容问题 提出vulkan激活函数,glsl中实现include 修复armv7编译单元测试失败的问题(@jasonZhang892) 修正conv3x3 winograd矩阵注释(@MouriNaruto) 修正how-to-build拼写错误,更新jetson-nano编译文档(@tpoisonooo) 更新ios编译文档(@mirrorsysu) 一些注释和代码清理和修复编译警告(@tpoisonooo) 修正readme中的单词大小写(@YoungSx) 更新use-ncnn-with-own-project中的glslang的库列表 ci新增msvc arm/arm64目标 ci新增linux loongarch目标 ci更新windows matrix和vs2022目标 修复vs2019打包 新增yolov5_pnnx例子 新增nanodetplus_pnnx例子 减少yolov5例子中后处理耗时(@UNeedCryDear) 修复yolov5.py框位置问题(@hariag) 更新ls2k1000的benchmark数据 pnnx支持转换torch unbind/ones/ones_like/full/full_like/randn_like/empty/empty_like/addmm pnnx支持torch 1.11.0版本 pnnx转换的ncnn模型文件使用fp16保存 pnnx在linux上链接pthread,修复windows minmax编译问题 pnnx新增静态msvc crt cmake选项 修正pnnx hardtanh 参数的ncnn转换 修复pnnx macos动态库加载路径的问题

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20220216...20220420

20220216

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.4,ubuntu-18.04,ubuntu-20.04,vs2015,vs2017,vs2019,emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

conv sgemm pack4/pack1to4/pack4to1 x86 sse2/avx优化 conv3x3s1 winograd pack4/pack4to1 x86 sse2/avx优化 conv int8 gemm pack8to4/pack8to1/pack1to8 x86 xop/avx2/avx512-vnni/avx-vnni优化 conv3x3s1 int8 winograd pack8to4/pack8to1 x86 xop/avx2/avx512-vnni/avx-vnni优化 scale x86 avx优化(Yoh-Z) interp x86 avx优化(Yoh-Z) conv pack arm neon优化 x86 avx512基础架构 默认启用x86 avx512编译和运行时检测 解耦合x86 fma和avx2 不依赖libgcc的x86 cpu指令集探测 支持动态权重的卷积 修正可能因Mat成员函数没有内联导致的非法指令问题 修正可能因函数对象实例没有内联导致的非法指令问题 修正单元测试比较函数错误(yyuzhong) binaryop/unaryop/reduction支持4维输入 新增Tile层和torch.repeat的转换 新增MatMul层和torch.matmul的转换 armv8.2 dot编译为运行时可选 支持sw_64平台(wzyforgit) 增加c-api的cmake开关 c-api增加默认mat构造函数(tpoisonooo) 简化binaryop的函数对象代码(tpoisonooo) 修正interp nearest在有非常规scale_factor参数计算错误的问题 简化c-api自定义层forward_n参数类型 删除非avx2编译时退化sse2的警告(kagurazakakotori) 在64位编译时使用_mm_cvtsi128_si64降低内存访问(kagurazakakotori) 修正low-level op api文档错误(FeiGeChuanShu) 修正crop test缺失的doffset参数(xh-liu-tech) 修正arm convolution pack1to4 int8权重重排(cmdbug) 简化get_current_time平台相关宏(cmdbug) 修正armv7无neon编译时计算错误的问题 增加c906 v223工具链(zchrissirhcz) 添加第二个qq技术交流群答案(LJoson) python ci禁用tools和examples构建 ci动态库编译禁用LTO ci更新swiftshader-20220211 删除travis ci和readme相关条目(proydakov) 新增yolo-fastest模型benchmark(dog-qiuqiu) 更新来自Q-engineering树莓派/jetson-nano等benchmark数据 benchmark增加zynq-7020/z8350/n5105 pnnx支持转换torch dequantize/quantize_per_tensor/quantized.linearrelu/argmax/argmin/clone/normal/expand/var/amax/amin/logsumexp/prod/sum/arange/matmul/zeros_like/expand_like/deformconv2d/roialign/norm/stack/repeat/zeros/roll/remainder pnnx自动删除dropout算子 pnnx自动删除无pads的pad和noop算术表达式 pnnx常量折叠 pnnx转换4维常量数据 pnnx支持half数据类型导出的模型 pnnx转ncnn时删除尾部的reshape/permute pnnx合并conv1d-bn convtranspose1d-bn pnnx合并单一维度全select为unbind pnnx确保算子名唯一性 修正pnnx转ncnn时遇到无法展开的表达式发生崩溃的问题 pnnx转ncnn支持负数pads的F.pad pnnx转ncnn合并transpose-matmul pnnx转ncnn在pooling123d前后增加升维和降维的reshape模拟nn.MaxPool123d处理无batch维数据的行为 pnnx命令行参数的shape指定输入类型 pnnx自动寻找pytorch安装目录(Yutyrannus) pnnx ci自动拷贝dll文件(Yutyrannus) 添加pnnx命令行工具用法说明(ling0322)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20211208...20220216

20211208

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.4,ubuntu-18.04,ubuntu-20.04,vs2015,vs2017,vs2019,emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

Mat数据结构支持4维 新增Convolution3D, Pooling3D和对应的pnnx算子转换 这些算子支持4维输入输出(Cast, Packing, ReLU, BatchNorm, Reshape, Flatten, Permute, Crop)和对应的pnnx算子转换 C api增加4维mat Convolution1D常规的simd优化(sse/avx/neon/rvv/msa) 降低gpu推理时的cpu占用 降低单元测试cpu占用 改进pnnx转ncnn的batch轴识别 更新operators文档 修复开启simpleocv时仍然寻找系统opencv的问题(zchrissirhcz) 修正p2pnet例子绘图bug(FeiGeChuanShu) 支持c906 v2.2.2新工具链 更可靠的ci任务取消机制 ci新增avx512和nvidia t4 修复python wheel发布脚本 更新ci lavapipe版本(ljtjerry) 更新ci webassembly支持nodejs v16 更新FAQ(zhaqu, Bright476, Rinfair-CSP-A016) 修正拼写错误(cmdbug)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20211122...20211208

20211122

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.4,ubuntu-18.04,ubuntu-20.04,vs2015,vs2017,vs2019,emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

PNNX(PyTorch Neural Network Exchange)是PyTorch模型部署的新方式,可以避开ONNX中间商,导出比较干净的高层OP risc-v v binaryop, hardswish, hardsigmoid, prelu, selu, dropout, gru, softmax优化(thelastlin) risc-v v conv1x1 fc优化 arm neon requantize leakyrelu优化 arm neon innerproduct gemm int8优化 针对c906 sgemm pack优化(yaobyPerfxlab, xianyi) x86 avx 卷积激活优化(zhiliu6) x86 sse convolution, convolutiondepthwise, pooling优化(Timen) 修正layernorm affine计算错误 修正pooling adaptive计算错误 修正deconvolution output padding在有bias时的计算错误 interp支持cubic aligncorner插值 interp支持对2维数据w方向拉伸 新增convolutiondepthwise1d和pnnx转换 rnn/lstm/gru支持不相等的输入输出个数 修正squeeze和expanddims层axes的处理 使用整数计算pooling adaptive参数上下界(Yutyrannus) 修复armv7 neon round模式差异 修复x86 sse/avx round模式差异 修复int8输入单元测试可能的越界读 修复在某些android平台无法获得auxv变量的问题 修正apple a11 a12检测armv8.2 dot扩展指令错误的问题 内存引用加载模型时不再拷贝到内存 修复pyncnn numpy转Mat时非对齐拷贝出错的问题 正确检测和支持apple a15和m1(zchrissirhcz) 修复AVX-only代码和用户提供opt时的单元测试逻辑(Timen) hardswish激活合并入convolution和innerproduct(zhiliu6) 自动解耦extract的Mat数据与Net实例的内存池 Net的custom_layer_to_index移到public(Timen) 删除代码中的无用变量(Sinky-Yan) cmake检测esp32的xtensa架构 cmake install安装ncnn工具(jinmingyi1998) 修正hardswish test beta参数(zhiliu6) 修复ncnnoptimize无法生成合理int8权重的问题 ncnnoptimize支持embd层 修正onnx2ncnn concat算子负数axis转换的问题 修复onnx2ncnn合并expand算子(grimoire) 修复某些arm kernel越界读数据的问题 修复NCNN_STDIO=OFF的编译问题 新增YOLOX例子, 更新预处理逻辑(FateScript) 新增RobustVideoMatting例子(FeiGeChuanShu) 新增scrfd croudhuman例子(MarsTechHAN) 新增YOLOv5 v6.0例子(zhiliu6) 新增CrowdCounting-P2PNet例子(FeiGeChuanShu) readme添加yolox(Sinky-Yan) 更新readme文档(fzyzcjy) 修复msvc编译器警告(TianZerL) 一些拼写错误修正(cmdbug, huoshuai-dot) 更新faq文档(ncnnnnn, luqiang-guo, zhiqwang, cmdbug, CharlesHuan, Shiro-Nana, zmq175) 更新operators算子文档(soragotosann) 更新d1和ls2k编译文档 新增termux编译文档(Sinky-Yan) 更新msvc编译文档(ncnnnnn) 更新编译文档(dankernel, mlbo, xiguadong) 更新macos openmp安装方法(zhiqwang) 更新量化文档中的链接(ShiquanYu) 修正python编译文档路径错误(nixondutt) benchmark新增m1数据(zhiqwang) benchmark新增mbp数据(AnnYellow) benchmark新增khadas vim3 amlogic a311d数据(elejke, FeiGeChuanShu) benchmark新增Phytium FT-2000+/64数据 benchmark新增RK3568数据(BowShotDS) benchmark新增RK3328数据(Liuyufanlyf) benchmark新增Ingenic X2000和T40数据(MarsTechHAN) ci更新swiftshader ci新增基于lavapipe的gpu测试 ci删除travis arm32(Richuanwu) ci更新xcode版本

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20210720...20211122

20210720

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2015, vs2017,vs2019, emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

risc-v架构cpu的vector 0.7.1和1.0扩展的算子优化,包括fp32/fp16,支持可变vlen,运行时检测vector和半精度扩展与函数分发(absval, cast, clip, concat, convolution, convolutiondepthwise, crop, deconvolution, deconvolutiondepthwise, flatten, innerproduct, interp, mish, packing, padding, pooling, relu, sigmoid, swish, tanh, unaryop) mips架构cpu的msa扩展的算子优化,运行时检测msa扩展与函数分发(absval, bias, binaryop, clip, concat, convolution, convolutiondepthwise, crop, deconvolution, deconvolutiondepthwise, dropout, eltwise, flatten, hardsigmoid, hardswish, innerproduct, interp, mish, packing, padding, pooling, prelu, relu, sigmoid, slice, softmax, swish, tanh, unaryop) 运行时检测avx,优化avx-only平台的性能(Timen) 支持loongarch64架构编译(tsuibin) 在apple设备上总是启用armv8.2 dot 可以不依赖opencv用simpleocv编译example示例 改善visual studio配合clang编译(Timen) 新增cmake选项NCNN_BF16,可禁止所有bf16相关代码减小库体积 大幅更新operators算子文档 arm neon数学函数fma优化 arm neon tanh优化(deepage) AbsVal/ReLU的risc-v vector优化(thelastlin) 修正x86 requantize pack4to1计算错误 修正innerproduct gemm in8计算错误(lsdustc) 修正warpaffine_bilinear_yuv420sp uv变换矩阵错误(DaydreamCoding) 修正yuv420sp2rgb在armv7平台越界读数据问题(zchrissirhcz) 修正vulkan push_constant编码时的内存泄漏(chenxiemin) darknet2ncnn支持sam层和letter_box检测(zhiliu6) 修复darknet2ncnn pad=0转换错误(zhiliu6) 修正ncnn2table工具解析命令行长数字错误 优化ncnn2table多线程效率 ncnn2table支持动态输入(jinmingyi1998) 修正ncnn2table easyquant方法文件索引错误(lsdustc) 修正ncnnoptimize丢失interp参数问题(jinmingyi1998) 修复ncnnoptimize在替换conv为fc算子后可能的段错误 修复ncnnoptimize在遇到孤立节点时可能的段错误 修复macos ci swiftshader编译 修正test_extractor.py的TypeError断言(zhiqwang) 修复macos的编译警告(proydakov) risc-v ci升级qemu 6.0.0并支持rvv扩展 ci现在过滤更改文件,减少触发 新增c906工具链 更新visual studio编译中文文档(zchrissirhcz) 修正examples yolov4视频加载错误(uniartisan) readme添加pocky群号(JuYanYan) readme添加scrfd(ncnnnnn) 增加issue模板(tpoisonooo) 一些拼写错误修正(hwdef) benchmark新增nanodet_m模型(BUG1989) benchmark新增v1605b数据(kalcohol) benchmark新增loongson 2k1000数据 benchmark更新jetson agx数据(zineos) 新增代码格式化ci,禁用restyled

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20210525...20210720

20210525

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2015, vs2017,vs2019, emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

绘图api,画框,画圆,画线,画字 simpleocv添加stb_image读写图片文件 运行时检测armv8.2 dotprod 未找到opencv时依然能编译量化工具 允许超过gpu硬件队列数限制并行提交任务 ncnnoptimize自动生成随机bin文件 修复convolutiondepthwise int8经过ncnnoptimize后权重错位问题 extract int8数据自动转换为fp32 添加获取模型输入输出blob接口(caishanli) 发布python预编译包(caishanli) 更新imx7d benchmark risc-v v 优化数学函数 运行时检测 risc-v vlen mlir2ncnn合并swish benchmark添加efficientnetv2_b0 修正jetson cmake工具链错误定义android宏的问题 修正macos/ios glslang framework打包问题 webassembly预编译包启用simpleocv 添加scrfd人脸检测例子 添加scrfd人脸检测截图(ZHEQIUSHUI) 更新FAQ(deepage) 修正拼写错误(FusionBolt) 添加下载数badge

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20210507...20210525

20210507

2 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2015, vs2017,vs2019, emscripten-2.0.8

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

int8 packing重构,自动转换packing,大幅优化int8 arm neon卷积实现,支持armv8.2 dot指令加速 重写ncnn量化工具,支持kl/aciq/easyquant三种量化策略,提升多线程效率 ncnn2int8 离线融合quantize-激活-dequantize为requantize,实现端到端int8 去除用于在线融合requantize功能的cmake NCNN_REQUANT编译选项 conv/fc int8支持全部激活组合 conv3x3s1 pack8 直接卷积x86 avx优化 conv3x3 conv1x1 pack8 x86优化(zhiliu6) instancenorm arm neon优化 pixelshuffle arm neon优化 运行时检测risc-v cpu v扩展和函数分发 log/exp/sin/cos/tanh数学函数的risc-v v优化 packing/sigmoid/mish/tanh/swish/unaryop/cast risc-v v优化 动态库导出vkcommand和vkcompute api binaryop新增三种broadcast类型 新增cmake编译选项NCNN_INT8,可禁用全部int8推理相关代码 为find_blob_index_by_name错误附加更有用的提示信息 新增检测cpu支持risc-v v扩展和fp16扩展的查询接口 新增c906编译支持 删除caffe2ncnn中早期遗留的fp16和int8量化功能 修正conv1x1s1 sgemm pack8to4 fp16sa有bias时arm neon计算错误的问题 修正lrn vulkan因fp16精度不足导致计算错误的问题 修正ncnn2int8解析过长行时出错 修正使用gpu时候,无法input extract同个blob的问题 修正macos使用集成显卡时初始化错误 修正tanh neon计算错误 修复启用NCNN_ARM82编译时在树莓派运行发生非法指令错误 修正caffe2ncnn input层1维2维的参数转换 修正onnx clip没有max导致转换出错的问题 mxnet2ncnn 支持channel pad 改善mxnet2ncnn有同名blob模型的兼容性 排序ncnn_add_layer_test(ncnnnnn) 为hardsigmoid/hardswish默认参数添加注释(songqun) python打包去掉ppc64le(caishanli) 修复老版本gcc编译问题 修复NCNN_STRING=OFF时的编译问题(zhiliu6) 添加Apple M1 benchmark(DaChengTechnology) 修正文档拼写错误(cmdbug, proydakov) 更新ncnn量化推理文档 更新operation-param-weight-table(cmdbug) 添加新的faq文档(wwdok, zchrissirhcz, runrunrun1994, wblksheep, DaChengTechnology, ncnnnnn, 791136190, mmiirroo, cmdbug) 删除构建文档中有关cctools的部分 restyled机器人不触发ci 更新codecov版本 更新risc-v ci工具链,支持最新rvv-1.0 添加risc-v的代码覆盖率 更新qcom855+的benchmark数据

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20210322...20210507

20210322

3 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2017,vs2019

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads

warpaffine函数arm neon优化 新增multiheadattention和pytorch的转换 新增gelu(RBelogorodtsevFBase) 新增flush denormal选项并默认启用(leeys888) 新增adaptive_pooling vulkan实现(zylo117) 默认使用net局部的内存池 默认使用大核心的cpu作为线程数 在较新的adreno/mali gpu上启用fp16s/int8s 修正int8 armv7 conv1x1s1 requant无neon计算错误 conv3x3s1 winograd42 arm neon优化 通用convolution im2col sgemm的arm neon优化 常规的AVX2 convolution优化(zhiliu6) 优化ssd detectionoutput候选框计算(WeiChungChang) 在旧版adreno驱动时使用桥接的image上传下载 修复inplace forward(gdh1995) 消除NCNN_BENCHMARK启用时不必要的数据复制(yx9527) 改善megvii风格的shufflechannel转换 onnx2ncnn自动拓扑排序 改善onnx2ncnn layernorm转换 ncnnoptimize可以切分模型(chentyjpm) mlir2ncnn设置自定义llvm/mlr路径(daquexian) 修复多输入模型使用gpu推理可能导致的数据错误 修复gpu image分配失败的回退cpu的问题 修复gpu buffer2host的问题 修复某些pipeline编译失败的问题(zchrissirhcz) 修复macos编译问题(leeys888) 修复onnx2ncnn转换某些memorydata shape错误 修复python model zoo下载(caishanli) 修复ncnnoptimize遇到多个自定义层崩溃问题 cmake寻找和链接thread库 更新glslang版本(proydakov) int8量化工具支持adaptive pool(GuoxiaWang) 上传wheel到pypi(caishanli) 修复python net extractor销毁顺序的问题(caishanli) 新增python vulkan test(caishanli) 修正python setup.py缺失的import(zylo117) 更新convertmodel.com链接(daquexian) 更新mlir tf2 dialect 修正一些拼写错误(zchrissirhcz, caishanli, zhiqwang) ios最低版本要求9.0(DaChengTechnology) 关于在自己项目使用ncnn的文档(zchrissirhcz) readme新增nanodet(RangiLyu) 补充android cmake ninja编译方法(ncnnnnn) readme更新各个算法链接(linser233) 修正how-to-build文档中benchncnn输出格式(ncnnnnn) 新增build-mlir2ncnn文档(zchrissirhcz) 修复nanodet示例代码的变量重名(RangiLyu) 修复yolact示例代码的越界问题(cmdbug) 新增nanodet python demo(caishanli) 新增有关nvidia gpu无法开启vulkan问题的文档(PENGUINLIONG)

20210124

3 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2017,vs2019

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库/动态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库/动态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads

添加python绑定,默认不编译(caishanli) 新增cmake选项NCNN_SHARED_LIB编译动态库,pimpl实现模式 新增cmake选项NCNN_PLATFORM_API控制是否调用平台相关的api 大幅更新 C api,增加底层 op 接口 Blob类的consumer成员改为单个 重构forward_layer逻辑为更加简短 warpaffine整数实现和 arm neon 优化 新增pooling的adaptive参数,支持pytorch AdaptiveAvgPool2d/AdaptiveMaxPool2d转换(GuoxiaWang) 新增gru和rnn,以及对应的 arm neon 优化 lstm arm neon 优化 innerproduct aarch64 int8 gemm优化(tpoisonooo) padding支持1-3维,补充单元测试用例 packing pack8 arm neon 优化 重构onnx2ncnn和mlir2ncnn构图和优化逻辑,修复opset_version=12模型转换错误 改善onnx lsrm/gru/rnn的转换和算子融合 interp vulkan 支持 align_corner=True innerproduct现支持2维gemm计算 简化innerproduct x86 arm的pack分类和优化代码 自定义层注册添加custom_layer_destroyer参数(caishanli) Reorg/PixelShuffle层支持nhwc模式,onnx DepthToSpace mode DCR转换 减少不必要的unpack/pack(maxfy1992) packing pack4 x86 sse 优化 conv1x1s1 pack4 x86 sse 优化 改善macos的arm64支持 修正 memorydata vulkan 没有packing的问题 单元测试检查layer的支持属性 onnx2ncnn跨batch的Transpose转换 mlir2ncnn使用更短的blob名字 ncnnoptimize中的aborted提示改为skipped 修复blob数量超出实际数量时ncnnoptimize崩溃的问题 android 平台自动链接 jnigraphics 当开启vulkan校验时会启用VK_LAYER_KHRONOS_validation扩展 更换pyncnn model zoo地址(mosheliv) 检查NCNN_MAX_PARAM_COUNT越界(zchrissirhcz) simplepose例子添加提示(zchrissirhcz) 修复一些编译器警告(zchrissirhcz, ncnnnnn, proydakov) 修正一些代码的拼写错误(zchrissirhcz, ncnnnnn) 修复mingw-x64 simd编译错误(zchrissirhcz) operators文档添加convolutiondepthwise/crop/sigmoid/tanh(cavalleria) operators文档添加pooling(Sanster) 更新支持的平台矩阵(monkeyking) 新增github pull request文档(tpoisonooo) 增加 pytest option/allocator/net/extractor V831工具链(sunnycase) ci添加vs2015 ci添加python编译(caishanli) release的windows预编译包包含32位库以及vs2015版本 release添加linux/windows/android动态库预编译包

20201218

3 years ago

编译版本,默认配置,android-ndk-r21d,xcode 12.2,ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,vs2017,vs2019

file content arch
ncnn-full-source.zip 包含全部 submodule 代码的完整源码
ncnn-android.zip android 静态库 armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-android-vulkan.zip android 静态库,支持 GPU armeabi-v7a + arm64-v8a + x86 + x86_64
ncnn-ios.zip ios 静态库,w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,w/o bitcode arm64 + arm64e + x86_64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库,支持 GPU,模型转换工具 x86_64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads

ncnnoptimize和ncnn2mem自动处理自定义op 新增获取ncnn版本的API:const char* ncnn_version(); Eltwise层支持一维和二维输入 开启更多vulkan扩展,根据gpu厂商设定较可靠的subgroup size 修正macos/ios arm64 simpleomp崩溃 onnx2ncnn 转换gemm保留输入数据 采用github action编译openmp和预编译包,发布新版本 增加ios arm64e架构编译 修正gcc-4.4/gcc-4.8编译错误 修正一些编译警告(ncnnnnn, zchrissirhcz, proydakov) 修正 build.sh macos 编译参数(cavalleria) 更新 macos vulkan sdk(monkeyking) benchmark新增3970X和RTX8000数据(BUG1989) operators文档新增cast(xingxingRealzyx)