ncnn:基于C++的高性能移动端神经网络前向计算框架项目

可将深度学习算法轻松移植到手机端高效执行,开发人工智能APP。无第三方依赖,跨平台,ARM Neon汇编优化,速度快、内存占用低,支持多输入多分支结构及多种CNN网络与GPU加速。【此简介由AI生成】

分支1Tags5
文件最后提交记录最后更新时间
1 年前
10 个月前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
3 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
3 年前
3 年前
3 年前
1 年前
1 年前
1 年前
1 年前
3 年前
1 年前
1 年前

ncnn

ncnn

许可证 下载总量 代码覆盖率

ncnn 是一个专为移动平台优化的高性能神经网络推理计算框架。 ncnn 从设计之初就充分考虑移动端的部署和使用需求。 无第三方依赖,跨平台,在移动端 CPU 上的运行速度超越所有已知开源框架。 开发者可以借助高效的 ncnn 实现,轻松将深度学习算法模型部署到移动平台,开发出智能应用,让人工智能触手可及。 ncnn 目前已在腾讯多款应用中使用,如 QQ、QQ空间、微信、天天P图等。


技术交流 QQ 群
637093648 (超多大佬)
答案:卷卷卷卷卷(已满)
Telegram 群组

https://t.me/ncnnyes

Discord 频道

https://discord.gg/YRsxgmF

Pocky QQ 群(MLIR YES!)
677104663 (超多大佬)
答案:multi-level intermediate representation
他们都不知道 pnnx 有多好用群
818998520 (新群!)

下载与构建状态

https://github.com/Tencent/ncnn/releases/latest

如何在 Linux / Windows / macOS / Raspberry Pi3, Pi4 / POWER / Android / NVIDIA Jetson / iOS / WebAssembly / AllWinner D1 / Loongson 2K1000 上构建 ncnn 库

源代码

Android

Android 动态库

HarmonyOS

HarmonyOS 动态库
iOS

iOS 模拟器

macOS

Mac Catalyst

watchOS

watchOS 模拟器

tvOS

tvOS 模拟器

visionOS

visionOS 模拟器

Apple xcframework

Ubuntu 20.04

Ubuntu 22.04

windows
VS2015

VS2017

VS2019

VS2022

WebAssembly

Linux (arm)

Linux (aarch64)

Linux (mips)

Linux (mips64)

Linux (ppc64)

Linux (riscv64)

Linux (loongarch64)


支持主流 CNN 网络架构

兼容常见卷积神经网络模型


使用指南

通过AlexNet学习ncnn使用 含详细步骤,新手必读 😃

ncnn组件入门指南 AlexNet版 附完整操作流程,强烈推荐新人 😃

使用Netron可视化ncnn模型

将PyTorch或ONNX模型转换到ncnn

ncnn底层操作接口文档

ncnn模型文件结构说明

ncnn算子参数权重对照表

自定义层实现分步指南


常见问题

ncnn报错排查

ncnn输出异常处理

ncnn Vulkan相关问题


核心特性

  • 支持卷积神经网络,兼容多输入与分支结构,可执行部分子图计算
  • 零第三方库依赖,不绑定BLAS/NNPACK等计算框架
  • 纯C++实现,跨平台支持Android/iOS等系统
  • ARM NEON汇编级深度优化,计算效率极致
  • 精细内存管理与数据结构设计,内存占用极低
  • 支持多核并行计算,优化ARM big.LITTLE架构调度
  • 基于新一代低开销Vulkan API实现GPU加速
  • 可扩展模型设计,支持8位量化和半精度浮点存储,可导入caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir)模型
  • 支持零拷贝内存引用加载模型
  • 可注册自定义算子实现功能扩展
  • 总之就是很强,不怕被卷 QvQ

功能亮点

  • 支持卷积神经网络,兼容多输入与分支结构,可执行部分子图计算
  • 零第三方库依赖,不绑定BLAS/NNPACK等计算框架
  • 纯C++实现,跨平台支持Android/iOS等系统
  • ARM NEON汇编级深度优化,计算效率极致
  • 精细内存管理与数据结构设计,内存占用极低
  • 支持多核并行计算,优化ARM big.LITTLE架构调度
  • 基于新一代低开销Vulkan API实现GPU加速
  • 可扩展模型设计,支持8位量化和半精度浮点存储,可导入caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir)模型
  • 支持零拷贝内存引用加载模型
  • 可注册自定义算子实现功能扩展
  • 总之就是很强,不怕被卷 QvQ

平台支持矩阵

  • ✅ = 已验证完美适配且优化良好
  • ✔️ = 已验证支持但性能待提升
  • ❔ = 理论支持待验证
  • / = 不适用
Windows Linux Android macOS iOS
intel-cpu ✔️ ✔️ ✔️ /
intel-gpu ✔️ ✔️ /
amd-cpu ✔️ ✔️ ✔️ /
amd-gpu ✔️ ✔️ /
nvidia-gpu ✔️ ✔️ /
qcom-cpu ✔️ / /
qcom-gpu ✔️ ✔️ / /
arm-cpu / /
arm-gpu ✔️ / /
apple-cpu / / / ✔️
apple-gpu / / / ✔️ ✔️
ibm-cpu / ✔️ / / /

应用案例


许可证

BSD 3条款

项目介绍

可将深度学习算法轻松移植到手机端高效执行,开发人工智能APP。无第三方依赖,跨平台,ARM Neon汇编优化,速度快、内存占用低,支持多输入多分支结构及多种CNN网络与GPU加速。【此简介由AI生成】

定制我的领域