Ncnn Versions Save

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

20240102

2 months ago

编译版本,默认配置,android-ndk-r26b,xcode 13.4.1,ubuntu-20.04,ubuntu-22.04,vs2015,vs2017,vs2019,vs2022,emscripten-3.1.28

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-apple.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-apple-vulkan.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e
ncnn-ios-simulator.zip ios simulator 静态库,with and w/o bitcode i386 + x86_64 + arm64
ncnn-ios-simulator-vulkan.zip ios simulator 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-mac-catalyst.zip mac catalyst 静态库,with and w/o bitcode x86_64 + arm64
ncnn-mac-catalyst-vulkan.zip mac catalyst 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

内建vulkan驱动加载功能,不依赖vulkan-sdk编译gpu功能,可直接加载显卡驱动文件 msvc编译启用arm neon指令加速,启用arm64 asimdhp编译 实现python pnnx pypi包和python调用接口/文档(@Hideousmon) arm convolution int8 直接卷积重构支持任意elempack 优化 vulkan global pooling性能 优化resize bilinear性能 压缩字体数据减小二进制体积 deconvolution支持动态权重和对应pnnx转换 新增跑分数据rank card(@Qengineering) 支持big-endian架构平台,powerpc32位 添加woa linux ci 添加msvc禁用exceptions/rtti的编译开关 在macos上使用信号探测avx512指令集支持情况 支持寻找32位显卡驱动文件(@whyb) 启用benchmark编译打印4维shape(@Deepdive543443) 修复riscv-int8 sigmoid激活的测试失败问题(@MollySophia) 修复deconvolution x86 bias非对齐访问的问题 修复prelu x86 sse指令非对齐访问的问题(@AIOa) 修复windows上openmp设置线程数为0的警告 修复在支持16bit/8bit的gpu上有关fp16sa shader使用fp16 shared变量的警告 修复nvidia vulkan驱动在程序退出的crash 修复vkimagemat from_android_hardware_buffer缺失的elemsize参数错误 修复simpleocv Mat模板ptr的偏移错误 添加更过的gpu相关python绑定接口(@joeyballentine) android vulkan包的api版本降低到14/21 pnnx支持转换recompute_scale_factor=True的nn.Upsample 新增nn.Identity测试 修复pnnx路径切分的问题 修复pnnx生成ncnn py空格对齐(@cmdbug) pnnx生成的py可以直接执行推理 python pnnx返回优化后的torch模型 删除无用的代码(@ningjiang233) 改善cmake toolchain文件(@zchrissirhcz) 新增watchos和tvos ci 修复linux sde ci的运行错误 更新POWER clang版本信息的文档(@JeremyRand) 更新有关vulkan/libomp-dev依赖的文档(@JeremyRand) 更新有关编译python模块CMAKE_TOOLCHAIN_FILE环境变量的文档(@JeremyRand) 修复Rasberry拼写错误(@JeremyRand) FAQ新增有关pyncnn数据连续性的文档(@lll143653) 更新readme下载页表格 添加Nintendo 3DS编译信息(@Deepdive543443) 添加oncloud amlogic s805跑分数据(@mizu-bai) 添加树莓派5 gpu跑分数据(@FantasyGmm) 添加Jetson TX2跑分数据(@FantasyGmm) 添加8gen2跑分数据(@mahirumahiru) 添加2K2000跑分数据(@RevySR) 更新Jetson Orin Nano/树莓派5跑分数据(@Qengineering) 添加visionfive2跑分数据(@wzyforgit)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20231027...20240102

20231027

5 months ago

编译版本,默认配置,android-ndk-r25c,xcode 13.4.1,ubuntu-20.04,ubuntu-22.04,vs2015,vs2017,vs2019,vs2022,emscripten-3.1.28

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-apple.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-apple-vulkan.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e
ncnn-ios-simulator.zip ios simulator 静态库,with and w/o bitcode i386 + x86_64 + arm64
ncnn-ios-simulator-vulkan.zip ios simulator 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-mac-catalyst.zip mac catalyst 静态库,with and w/o bitcode x86_64 + arm64
ncnn-mac-catalyst-vulkan.zip mac catalyst 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

x86 convolution int8 gemm重构支持任意elempack x86 convolution int8 winograd重构支持任意elempack arm convolution int8 gemm重构支持任意elempack arm convolution int8 winograd重构支持任意elempack gelu vulkan优化(@FhqTreap) convolution1d vulkan优化(@FhqTreap) gridsample x86优化(@Yoh-Z) riscv gemm fp32优化(@Xinyu302) 新增erf/shrink和onnx转换(@brightening-eyes) 新增diag和pnnx转换(@wnqn1597) 新增celu和pnnx转换(@wnqn1597) 新增simplemath,允许不依赖libm编译使用数学函数(@HonestDeng) pooling adaptive支持动态的输出尺寸和pnnx转换 elu selu支持4维输入输出 slice支持indices参数 memorydata支持tag参数和fp16存储 x86 selu shufflechannel优化(@wnqn1597) 修复convolution vulkan在固定shape时的结果错误 修复权重tag潜在的溢出(@lrw04) 按层加载模型减少内存占用(@daquexian) 修复老版本gcc编译avx2 gather的错误(@chainsx) 修复老版本gcc编译_mm256_set_m128的错误(@whyb) 修复新版本protobuf编译问题 修复老版本glibc round编译问题 修复c906工具链编译错误 pyncnn启用vulkan支持(@Hideousmon) pyncnn添加load_param_mem接口(@JeremyRand @theflyingzamboni) pnnx支持torch-2.1 pnnx消除moduleop的输出unpack pnnx moduleop将权重shape作为参数写入param,内部权重顺序为使用顺序 pnnx改善reflect replicated pad匹配 pnnx合并conv3d-bn和deconv3d-bn pnnx转换torch.narrow(@zyt1024) pnnx转换torch.lgamma(@shudorcl) pnnx转换torch.positive(@nicochen1118) pnnx转换torch.cumprod(@Jiang-Weibo) pnnx转换torch.mv/nn.ReplicationPad3d(@ShuRaymond) pnnx转换F.pairwise_distance(@Marsyule) pnnx转换torch.view_as_real/torch.view_as_complex(@Baiyuetribe) 修复pnnx与新版本protobuf编译问题(@HuPengsheet) 修复pnnx改变目录下划线的错误 onnx2ncnn支持celu转换(@brightening-eyes) 自动为pull request添加label 修复ohos工具链编译错误 改进codeformat脚本使用函数(@xiezheng-XD) 添加rk3566 rk3588s跑分数据(@chainsx) 添加Allwinner T527跑分数据(@YuzukiTsuru) 添加树莓派5b跑分数据(@Pillar1989) 添加RTX A3000跑分数据(@chainsx) 添加多款pc跑分数据(@whyb)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20230816...20231027

20230816

7 months ago

编译版本,默认配置,android-ndk-r25c,xcode 13.4.1,ubuntu-20.04,ubuntu-22.04,vs2015,vs2017,vs2019,vs2022,emscripten-3.1.28

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-apple.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-apple-vulkan.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e
ncnn-ios-simulator.zip ios simulator 静态库,with and w/o bitcode i386 + x86_64 + arm64
ncnn-ios-simulator-vulkan.zip ios simulator 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-mac-catalyst.zip mac catalyst 静态库,with and w/o bitcode x86_64 + arm64
ncnn-mac-catalyst-vulkan.zip mac catalyst 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

实现全部的binaryop explicit广播规则类型 x86直接卷积权重变换的avx2/avx512优化 x86 int8直接卷积支持任意elempack和sse2/xop/avx2/avx512/vnni优化 ppc64 power8/power9 vsx工具链支持,编译器检查和intrinsic翻译优化(@JeremyRand) 更新glslang并启用VK_KHR_cooperative_matrix扩展和优化 修复pyncnn自定义layer模型权重加载 c_api新增Mat border/layer_to_index api(@Mek101) VkCompute::submit_and_wait现在能返回错误值(@Upliner) 修复老版本clang编译时too many microtasks问题 修复clang-cl cpuid函数兼容性(@charlescao460) 修复新版本protobuf c++17编译问题 修复老版本编辑器sleep递归调用错误(@whyb) 编译时检查loongarch lasx扩展支持并自动启用 清理multiheadattention arm优化代码 binaryop支持一维outer axis广播规则,保持旧的兼容行为 benchncnn支持从命令行参数中指定自定义模型和输入(@tpoisonooo) macos平台静态编译链接需要的系统库(@Baiyuetribe) 更改amd集显上的显存分配策略为仅设备优先,修复在bios设置大显存时分配失败问题 onnx2ncnn遇到不支持transpose类型输出错误信息(@huoshuai-dot) pnnx支持多算子到多算子的图变换 pnnx新增转换torch.round/trunc/fill/index_put/to/type_as/topk/fmod/cross/t/maximum/minimum pnnx合并chinese-clip/sam-iamge-encoder attention结构 pnnx合并F.scaled_dot_product_attention pnnx消除无用的expand/expand_as/type_as pnnx修正fp16模型在优化时的权重变换错误 pnnx修正负数shape索引越界问题(@Justin62628) pnnx修复转换后py文件执行时权限错误(@zhenjiaguo) pnnx转换ncnn global pooling后自动添加reshape pnnx转换非zero padding模式的卷积到ncnn pnnx转换2维nn.Linear为ncnn gemm pnnx转换torch.stack为ncnn concat+reshape pnnx转换torch.t到ncnn permute(@XiaBing992) pnnx转换logsigmoid/log_softmax为ncnn sigmoid/softmax+log(@lrw04) pnnx修复slice_copy输出的类型信息 pnnx修复表达式中int64转换溢出问题 pnnx修复reshape表达式消除后的ghost结点 pnnx合并表达式时折叠shape为1的类似标量的权重 pnnx合并表达式支持max/min pnnx改善图中有inplace操作时的输出结点连接探测,带来更多的常量折叠 添加ncnn glsl扩展文档以及中文版(@whyb) 修正faq文档错误(@KYShek) 改进cmake寻找vulkan提示用语(@zchrissirhcz) 更新vs2017编译步骤的细节(@brcarry) 新增Intel oneAPI编译步骤(@mizu-bai) 更新loongarch ci工具链,添加loongarch lsx覆盖率 更新python ci版本,新增python-3.12包 更新rpi3b+/rpi4b测试数据 更新huawei kunpeng 920测试数据(@MobtgZhang) 新增3A6000和TH1520 gpu测试数据(@Rabenda) 新增RDK X3 Module测试数据(@LJoson) 修复ios模拟器gpu badge(@732857315)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20230517...20230816

20230517

10 months ago

编译版本,默认配置,android-ndk-r25c,xcode 13.4.1,ubuntu-20.04,ubuntu-22.04,vs2015,vs2017,vs2019,vs2022,emscripten-3.1.28

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-apple.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,with and w/o bitcode armv7 + arm64 + arm64e + i386 + x86_64
ncnn-apple-vulkan.zip apple xcframework,ios + ios-simulator + macos + mac-catalyst,支持 GPU,with and w/o bitcode arm64 + arm64e + x86_64
ncnn-ios.zip ios 静态库,with and w/o bitcode armv7 + arm64 + arm64e
ncnn-ios-vulkan.zip ios 静态库,支持 GPU,with and w/o bitcode arm64 + arm64e
ncnn-ios-simulator.zip ios simulator 静态库,with and w/o bitcode i386 + x86_64 + arm64
ncnn-ios-simulator-vulkan.zip ios simulator 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-macos.zip macos 静态库 x86_64 + arm64
ncnn-macos-vulkan.zip macos 静态库,支持 GPU x86_64 + arm64
ncnn-mac-catalyst.zip mac catalyst 静态库,with and w/o bitcode x86_64 + arm64
ncnn-mac-catalyst-vulkan.zip mac catalyst 静态库,支持 GPU,with and w/o bitcode x86_64 + arm64
ncnn-ubuntu.zip ubuntu linux 静态库/动态库,支持 GPU,模型转换工具 x86_64
ncnn-windows.zip windows 静态库/动态库,支持 GPU,模型转换工具 x86 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

arm convolution winograd重构支持任意elempack arm convolution sgemm重构支持任意elempack arm convolution直接卷积重构支持任意elempack arm deconvolution/matmul 调用 gemm 完成计算 arm softmax支持任意elempack和bf16/fp16优化 arm multiheadattention fp16sa softmax优化 arm/x86 convolution1d直接卷积重构支持任意elempack和优化 粗糙的vulkan gemm和multiheadattention优化 multiheadattention支持输入attention mask sigmoid/swish/clip/gelu/mish/tanh支持4d输入 减少double类型的使用(@zhiliu6) arm a53/a55架构检测和流水线优化 允许注册自定义层替代内置实现 x86 asin/acos/atan/atan2 sse2/avx/avx512优化(@MouriNaruto) sse_mathfunc迁移floor/ceil(@Yoh-Z) x86 mathfun迁移abs(@Yoh-Z) simpleocv新增cv::imdecode内存加载图片(@AlOa) 新增配合vulkan vma使用的三种扩展支持(@whyb) 新增获取vkinstance的接口(@whyb) 新增通用的sleep接口(@whyb) innerproduct允许2维高度1的输入输出 修复multiheadattention分配内存存在的多线程竞争问题 修复在获取不到cache信息时的除0错误 修复scale avx512计算错误 修复exynos9810非法指令错误 老旧adreno驱动中禁用fp16a以解决计算错误 绕过n卡padding shader编译错误 移除platform.h中无用的aarch64判断(@dreamcmi) 修正modelwriter squeeze层参数id错误(@irexyc) 修复gcc-13编译错误(@hillwoodroc) 修复gcc-5.2 aarch64编译错误 修复aosp编译错误(@caofx0418) 修复n卡上benchmark退出时的crash(@triple-Mu) 修复获取cpu cache信息潜在的fd泄漏 优化lightmode循环条件(@MambaWong) 绕过新版moltenvk的兼容性问题 绕过n卡在multiheadattention softmax结果偶发nan的兼容性问题 调用cpu.h接口时强制初始化全局cpu信息 pnnx支持torch-2.0 pnnx支持complex数据类型 pnnx转换torch.baddbmm/torch.mm/torch.stft家族/torch.std/F.scaled_dot_product_attention pnnx支持fp16权重的torchscript pnnx支持非forward的其他函数入口 pnnx当只有一个动态维时候折叠reshape的shape表达式 pnnx识别常数常量和表达式中的折叠 pnnx自动删除maxpool无indices输出项 pnnx总是删除convtransposed output_size参数 pnnx合并gelu表达式 pnnx合并vit/clip/diffusers attention 修正pnnx的RNN/GRU省略输出项的python代码生成 修正pnnx转换ir时潜在的负INT_MAX下溢问题 修正pnnx fprintf类型不匹配(@kernelbin) 修复pnnx windows编译错误(@Yoh-Z) pyncnn model zoo添加yolov7-tiny(@kennybradley) pyncnn model zoo添加yolov8s(@triple-Mu) macos pypi包使用完整版本号 改善wasm ci编译效率 更新ci swiftshader版本 更新cmake ios toolchain,新增ios-simulator arm64和mac catalyst ci 添加qnx toolchain和编译步骤(@zchrissirhcz) 删除ubuntu-18.04的ci 更新3A5000 benchmark数据(@wzyforgit) 新增2K1000LA benchmark数据(@lrzlin) 新增icpc icc benchmark数据(@mizu-bai) 新增Hyper-V Linux Guest benchmark数据(@MouriNaruto) 新增和更新op4lts/op5/VF2/FT2000/3A4000 benchmark数据(@MobtgZhang) 更新centos编译文档(@inisis) 更新windows msvc编译文档(@kernelbin) faq新增关于cmake版本升级的内容(@inisis) faq新增关于显卡节能模式的内容(@whyb) 修正citation和benchmark文档中的拼写错误(@zchrissirhcz) 修正pnnx代码和readme中的拼写错误(@jsyzdej @zchrissirhcz)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20230223...20230517

20230223

1 year ago

编译版本,默认配置,android-ndk-r25c,xcode 14.0.1,ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,vs2015,vs2017,vs2019,vs2022,emscripten-3.1.28

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 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

扩充binaryop broadcast规则 新增copyto算子,对应于torch inplace slice copy操作 x86 gemm优化,新增 transpose_output 参数 x86 multiheadattention优化 x86 groupnorm优化(@EdVince) arm gemm优化,包括fp16s/fp16sa arm gelu优化(@EdVince) arm multiheadattention优化(@EdVince) 新增获取cpu l2/l3 cache大小接口,通过sysconf/win32-api和linux sysfs x86 gemm 依据l2 cache分块的优化 x86 convolution/deconvolution/deformableconv2d/matmul 调用 gemm 完成计算 x86 convolution winograd重构支持任意elempack x86 convolution直接卷积重构支持任意elempack x86公共的bfloat转换函数 slice/eltwise/concat支持4d输入 c api新增获取output indexes names接口 改善vulkan winograd f43 fp16计算数值稳定性 修复gpu信息bug bliz初始化问题(@weirdseed) 修正arm bfloat2float和float2bfloat命名相反的问题 更新riscv winograd f32系数,修复一些警告 更好的riscv rvv tanh实现 为ncnnoptimize/ncnn2int8添加新加的算子和参数 修复musl libc编译问题 更新stb image和image write,启用arm neon优化 更新emsdk版本到3.1.28,开启SIMPLEOCV(@ncnnnnn) pnnx新增torch.cumsum转换(@csukuangfj) pnnx新增torch.atan2/log10转换 pnnx自动替换pow(x,2)为square(x) 修正pnnx windows slice end参数问题(@Yoh-Z) pnnx自动删除无用的Tensor.clone(@Yoh-Z) pnnx自动展开模型输入tuple和list类型 pnnx转ncnn时分析binaryop broadcast规则并插入适当的reshape pnnx折叠常数常量,修复常数转换MemoryData兼容性问题 pnnx合并pixel unshuffle(@Yoh-Z) 去除pnnx readme多余空行(@inisis) 去除pnnx无用的include(@XiangYyang) 修正pyncnn output_indexes接口错误(@wyushun) 修复最新macos vulkan sdk兼容性问题(@w1ndseeker) 删除python代码无用的import(@dianjiaogit) 修复macos ci的xcode版本和vulkan sdk安装问题 更新ci中已废弃的create release步骤 添加CITATION.cff(@tpoisonooo) 更新cpu benchmark数据(@wzyforgit) 修复README编译状态badge(@tpoisonooo) 修复README编译链接(@tuduweb) 修正拼写错误(@hwdef @hiteshhedwig) 添加ncnn-fortran例子(@mizu-bai) 添加sherpa-ncnn实时语音识别例子(@csukuangfj)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20221128...20230223

20221128

1 year ago

编译版本,默认配置,android-ndk-r25b,xcode 12.4,ubuntu-18.04,ubuntu-20.04,ubuntu-22.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 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

新增loongarch64 lsx向量指令集优化,包括absval/batchnorm/bias/binaryop/cast/clip/concat/convolution1d/convolutiondepthwise/convolution/crop/deconvolutiondepthwise/deconvolution/dequantize/dropout/eltwise/flatten/hardsigmoid/hardswish/innerproduct/interp/mish/packing/padding/pooling/prelu/quantize/relu/requantize/sigmoid/slice/softmax/swish/tanh/unaryop算子(@junchao-loongson) layernorm x86优化(@LinHeLurking @LRY89757) batchnorm/elu/prelu/gelu x86优化(@LRY89757) softmax arm neon优化(@luqiang-guo) batchnorm/instancenorm riscv vector优化(@thelastlin) deformableconv2d x86优化(@miemie2013) elu vulkan优化(@Yoh-Z) convolution int8 x86 sse2/avx2优化 更新riscv vector segment load/store(@thelastlin) 改善内存池回收机制(@LinHeLurking) 新增获取cpu物理核心数量api,默认线程数设为物理大核心数量 实现控制单层运算特性是否启用的参数 更通用的macos/ios cpu特性探测过程,a15/a16/m2启用bf16和i8mm指令集 统一innerproduct x86 fp32/fp16s内核代码 修复在android省电模式cpu离线导致openmp崩溃的问题 实现glu算子与对应的pnnx转换(@csukuangfj) 新增fold和unfold算子 新增gridsample算子与对应的pnnx转换(@LRY89757) lstm支持proj_size参数 groupnorm支持1d/2d/4d输入计算 squeeze/expanddims支持4d输入输出 multiheadattention支持kdim vdim参数 修复convolutiondepthwise allocator的错误设置(@w8501) 修正windows arm环境中convolution权重为空的问题 修复onnx2ncnn blob名字超出255长度的问题(@ZhangGe6) 修正expanddims axes参数id错误的问题(@LiuYi-Up) 修正c api allocator无法工作的问题(@qiqikit) 更严格的编译器armv7 fp16功能检查和兼容 修复老版本gcc编译avx512代码的编译错误(@bestpower) 修复windows-arm64编译(@zchrissirhcz) 修复在老版本ndk引用ncnn链接atomic内置函数失败的问题 修复新版本pybind11编译错误(@tpoisonooo) python模块支持mat.numpy()(@csukuangfj) 更新pybind11和glslang子模块 pyncnn发布python 3.11包和windows arm版本 pnnx支持pytorch 1.13 pnnx现已支持在cpu上加载gpu导出的torchscript pnnx保存onnx-zero模型文件 pnnx转换时将常量存储在临时文件减少内存占用 pnnx新增命令行参数fp16=0/1控制是否用fp16保存onnx-zero/ncnn模型 pnnx支持大部分数学函数转换,新增nn.Softmax2d/nn.Fold/nn.Unfold/F.fold/F.unfold/bitwise_left_shift/bitwise_right_shift转换 pnnx改善和匹配inplace slice copy操作 融合更多静态的F.convND/F.linear为nn module 合并临接的reshape 合并pad到conv中 改善pnnx F.softmax转换对dtype兼容性(@EdVince) 修正pnnx softmax/normalize/slice负数axis转换错误的问题 修正pnnx slice end下标错误问题 修正pnnx转ncnn保存fp16权重没考虑对齐的问题 pnnx遇到动态size时不再折叠为常量 pnnx自动折叠new_full/full_like yolov5示例支持yolov5 6.2(@shaoshengsong) 修复编译警告(@tpoisonooo @veahow) 删除无用空行(@MollySophia @Menci) 修正空格对齐(@tonori) 修正拼写错误(@LRY89757 @Zepan @eltociear) 忽略.xmake目录,CMakeSettings.json,Visual Studio CMake文件(@zchrissirhcz) 重构README(@septs) 改善README布局(@magicse) 添加一些示例项目链接(@magicse @shaoshengsong) faq新增有关禁用fp16设置的内容(@MisakaBit) 更新riscv rvv ci 新增c906 ci 新增loongarch64 lsx ci 迁移部分github action ci到腾讯ci 新增TH1520 cmake toolchain(@luyanaa) 切分大型单元测试加快多进程测试速度 新增Intel Celeron M 420跑分(@MouriNaruto) 新增T-Head TH1520跑分(@YuzukiTsuru) 新增rock5b rk3588跑分(@hwdef)

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20220729...20221128

20220729

1 year ago

编译版本,默认配置,android-ndk-r24,xcode 12.4,ubuntu-18.04,ubuntu-20.04,ubuntu-22.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 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

batchnorm avx512 优化(@LRY89757) 新增DeformableConv2d层和单元测试(@miemie2013) 修复conv3x3 winograd tensorcore权重数据错乱导致结果出错的问题 修复memorydata 4维数据转换的问题 pnnx转换torchvision.ops.DeformConv2d到ncnn pnnx自动删除无用的 mul + torch.ones 和 add + torch.zeros pnnx修复动态shape时删除无用pad可能的崩溃问题 pnnx修复动态shape时错误删除upsample的问题 添加sse优化文档(@DC-Zhou) 更加严格的编译器riscv vector支持检查,删除rvv-0.7.1编译支持 更新ci中android ndk路径,使用android-ndk-r24打包

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20220721...20220729

20220721

1 year ago

编译版本,默认配置,android-ndk-r23c,xcode 12.4,ubuntu-18.04,ubuntu-20.04,ubuntu-22.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 + x64 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

armv5 convolution gemm int8优化 armv6 dsp convolution gemm int8优化 armv6 dsp convolution int8 winograd优化 mips msa/loongson mmi convolution int8 winograd优化 armv8.4 i8mm convolution gemm int8优化 探测编译器armv8.4/armv8.6的支持情况 优化innerproduct fp16s权重转换的内存消耗 统一arm eltwise不同elempack的分支 修复多线程下arm rnn/gru/lstm计算结果错误的问题 修复android-ndk-r16b编译多线程运行报错的问题 loongarch架构强制识别为mips以提升性能(@HougeLangley) 修复非常老版本的gcc编译错误 Mat创建时检查OOM 修复在android api 26编译找不到vkGetAndroidHardwareBufferPropertiesANDROID符号的问题 修复x86 fp32转fp16可能存在的内存泄漏 pnnx支持torch 1.12 pnnx识别torchscript文件格式并输出报错 pnnx转换torch.tensor_split pnnx合并多次同轴slice为tensor_split,修正插入位置 pnnx去除无用的一倍upsample pnnx转ncnn时合并多个BinaryOp为加权求和Eltwise pnnx合并megvii风格的shufflechannel+slice 添加pkgconfig(@djdisodo) 优化检测示例后处理nms(@jedi007) example检查加载模型返回值(@zchrissirhcz @jedi007) 添加Loongson2F toolchain(@luyanaa) 添加君正x2000 toolchain 添加ncnn svg图标(@ArchieMeng) 改善protobuf FAQ文档(@tpoisonooo) README添加ncnn-android-yolov7(@xiang-wuu) 添加yolov7示例(@cmdbug) 添加yolov7_pnnx示例(@hariag) benchmark新增fastestdet模型(@dog-qiuqiu) 新增armv8.6 ci和coverage 新增x86无sse ci 新增x86 address sanitizer ci

New Contributors

Full Changelog: https://github.com/Tencent/ncnn/compare/20220701...20220721

20220701

1 year ago

编译版本,默认配置,android-ndk-r23c,xcode 12.4,ubuntu-18.04,ubuntu-20.04,ubuntu-22.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 + arm + arm64
ncnn-webassembly.zip webassembly 静态库 wasm32 + simd + threads + simd-threads

x86/arm/mips/risc-v/vulkan 去除无用的权重内存占用 改善x86/arm/mips/risc-v winograd卷积选择策略,独立出dot函数 合并逐元素运算算子不同elempack的实现 x86 sse/avx bnll/tan优化(@jasonZhang892) x86 avx512 tanh优化(@jasonZhang892) x86 winograd 输入变换函数优化 x86 sse/avx convolution winograd23/42 pack1优化 x86 f16c innerproduct fp16s优化 arm neon tan/arcsin/arcos优化(@jasonZhang892) 改善arm sgemm卷积的选择策略 arm neon pooling bf16s优化 arm neon innerproduct汇编优化 armv7 vfpv4编译探测和运行时检测 armv7 vfpv4 cast fp16优化 armv7 vfpv4 innerproduct fp16s优化 armv5 sgemm卷积优化 mips msa cast fp16优化 mips sgemm卷积/convdw3x3优化 mips msa innerproduct fp16s优化 loongson mmi convolution gemm int8优化 risc-v vector erfc和gelu优化(@thelastlin) 优化sgemm和winograd尾尺寸寄存器布局 risc-v sgemm/winograd卷积/innerproduct/convdw3x3优化 avx512bf16/avx512fp16编译探测和运行时检测 avx512bf16/avx512fp16 cast bf16/fp16优化 armv8.2 asimdfhm,armv8.4 bf16 i8mm,armv8.6 sve sve2编译探测和运行时检测 新增einsum层实现和对应的pnnx转换 simpleomp支持libgomp abi layernorm支持一维输入和沿w做norm rnn/lstm/gru支持openmp多线程加速 mali-t760启用fp16运算 更多的binaryop arm/mips/riscv/x86特化实现 修复unaryop_x86 gcc-4.4编译问题(@Yoh-Z) 修复Mat fill gcc-4.4编译问题(@Yoh-Z) 添加Power层单元测试(@proydakov) yolov5_pnnx示例自动适应不同的num_class数量(@FeiGeChuanShu) 修正yolox输入shape w!=h的情况(@FeiGeChuanShu) 修复armv7中fp16转fp32发生bus error的问题(@cugxchen) 修复convdw/deconvdw的avx512代码路径(@Yoh-Z) 修复imreadwrite中total可能的溢出问题(@Z841973620) 去除scale_x86中无效的死代码(@luyanaa) 去除pnnx ir中无效的死代码(@moozae) 修正test_deconvolutiondepthwise3d中printf参数错误(@Nlzy) 修复mips架构上cmake寻找thread的错误 修复在不支持cooperative matrix扩展测试崩溃的问题 改善risc-v vector vfredsum/vfredusum编译器兼容(@thelastlin) 修复某些arm编译器循环优化劣化的问题 更新glslang,修复在使用系统glslang的include路径问题 拆分arm82源码到单独文件,减小编译体积和内存占用 修复ios universal arm82编译开关启用的问题 统一winograd函数命名 修复padding arm编译警告 修复ios/tools/arm82/non-int8编译警告(@proydakov) 修复LGTM警告(@proydakov) pnnx支持转换torch bmm/min/max/einsum/arange/bitwise_and/bitwise_not/bitwise_or/bitwise_xor/eq/gather/ge/gt/le/lt/ne/norm/index_select/scatter_add/complex/imag/real/fft/fft2/fftn/hfft/hfft2/hfftn/ifft/ifft2/ifftn/ihfft/ihfft2/ihfftn/irfft/irfft2/irfftn/rfft/rfft2/rfftn,Tensor new_ones/new_zeros/masked_fill,F.normalize一维情况 pnnx ir支持复数数据类型 pnnx支持转换Tensor select到ncnn 新增pnnx导出为onnx函数 pnnx导出ncnn fp16存储设计为一个pass pnnx添加更多hardsigmoid合并模式 pnnx合并multiheadattention的尾部unpack pnnx在静态shape输入时能有效的折叠常量 pnnx合并静态权重的卷积F.convND为nn.ConvND 修复pnnx生成slice表达式遇到动态参数崩溃的问题 pnnx支持dict作为模型输出的转换 pnnx转换ncnn模型遇到4d/5d输入nn.Linear自动添加reshape pnnx去除单输入的cat算子 pnnx在合并表达式时跳过可折叠的常量 pnnx兼容更多inplace风格的算子,改善子图匹配浮点和整数比较 pnnx导出moduleop时存出所有内部权重 pnnx添加vit_b_32和convnext端到端模型测试 pnnx添加swin_transformer模型测试 gitignore添加python生成的文件(@triple-Mu) 添加c906和c910 v240 toolchain 迁移pnnx,loongarch和gpu的ci到自建服务器 修复loongarch ci 添加avx512 spr cpu ci 更新ci的qemu版本 cmake安装目标路径采用gnuinstalldirs 限制github action配置的权限(@nathannaveen) ci的swiftshader使用单线程 修复vs2022 ci中protobuf兼容问题 添加关于关闭android界面和设置cpu/gpu性能模式的信息 更新README中QQ群信息(@zchrissirhcz) README中的YOLOV改为YOLOv(@zhiqwang) 更新树莓派和d1的编译文档 更新添加自定义算子文档的过时信息(@LRY89757) 添加英文版faq文档(@Jianbo-Ning) 添加英文版build-for-visualstudio文档(@dankernel) 添加vision_transformer benchmark(@tpoisonooo) 更新rk3399 rk3288 gpu benchmark数据 更新qcom810 qcom855plus benchmark数据 添加Jetson AGX Orin/Jetson AGX Xavier/AX620A benchmark数据(@BUG1989) 添加loongson和sunway benchmark数据(@wzyforgit) 添加RK3588 benchmark数据(@FeiGeChuanShu) 添加amd 5700g benchmark数据(@hwdef) release添加ubuntu 22.04预编译包 release android采用ndk-r23c编译 release预编译包保护软链接

New Contributors

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

20220420

1 year 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