可将深度学习算法轻松移植到手机端高效执行,开发人工智能APP。无第三方依赖,跨平台,ARM Neon汇编优化,速度快、内存占用低,支持多输入多分支结构及多种CNN网络与GPU加速。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 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 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈

ncnn
ncnn 是一个专为移动平台优化的高性能神经网络推理计算框架。 ncnn 从设计之初就充分考虑移动端的部署和使用需求。 无第三方依赖,跨平台,在移动端 CPU 上的运行速度超越所有已知开源框架。 开发者可以借助高效的 ncnn 实现,轻松将深度学习算法模型部署到移动平台,开发出智能应用,让人工智能触手可及。 ncnn 目前已在腾讯多款应用中使用,如 QQ、QQ空间、微信、天天P图等。
|
技术交流 QQ 群 637093648 (超多大佬) 答案:卷卷卷卷卷(已满) |
Telegram 群组 | Discord 频道 |
|
Pocky QQ 群(MLIR YES!) 677104663 (超多大佬) 答案:multi-level intermediate representation |
||
|
他们都不知道 pnnx 有多好用群 818998520 (新群!) |
下载与构建状态
https://github.com/Tencent/ncnn/releases/latest
|
|||
| 源代码 | |||
|
|||
| Android | |||
| Android 动态库 | |||
|
|
|||
| HarmonyOS | |||
| HarmonyOS 动态库 | |||
|
|||
| iOS | |||
| iOS 模拟器 | |||
|
|||
| macOS | |||
| Mac Catalyst | |||
| watchOS | |||
| watchOS 模拟器 | |||
| tvOS | |||
| tvOS 模拟器 | |||
| visionOS | |||
| visionOS 模拟器 | |||
| Apple xcframework | |||
|
|||
| Ubuntu 20.04 | |||
| Ubuntu 22.04 | |||
|
|||
| VS2015 | |||
| VS2017 | |||
| VS2019 | |||
| VS2022 | |||
|
|||
| WebAssembly | |||
|
|
|||
| Linux (arm) | |||
| Linux (aarch64) | |||
| Linux (mips) | |||
| Linux (mips64) | |||
| Linux (ppc64) | |||
| Linux (riscv64) | |||
| Linux (loongarch64) | |||
支持主流 CNN 网络架构
兼容常见卷积神经网络模型
- 经典CNN: VGG AlexNet GoogleNet Inception ...
- 实用型CNN: ResNet DenseNet SENet FPN ...
- 轻量级CNN: SqueezeNet MobileNetV1 MobileNetV2/V3 ShuffleNetV1 ShuffleNetV2 MNasNet ...
- 人脸检测: MTCNN RetinaFace scrfd ...
- 目标检测: VGG-SSD MobileNet-SSD SqueezeNet-SSD MobileNetV2-SSDLite MobileNetV3-SSDLite ...
- 检测网络: Faster-RCNN R-FCN ...
- 检测网络: YOLOv2 YOLOv3 MobileNet-YOLOv3 YOLOv4 YOLOv5 YOLOv7 YOLOX ...
- 检测网络: NanoDet
- 语义分割: FCN PSPNet UNet YOLACT ...
- 姿态估计: SimplePose ...
使用指南
通过AlexNet学习ncnn使用 含详细步骤,新手必读 😃
ncnn组件入门指南 AlexNet版 附完整操作流程,强烈推荐新人 😃
常见问题
核心特性
- 支持卷积神经网络,兼容多输入与分支结构,可执行部分子图计算
- 零第三方库依赖,不绑定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 | / | ✔️ | / | / | / |
应用案例
- https://github.com/nihui/ncnn-android-squeezenet
- https://github.com/nihui/ncnn-android-styletransfer
- https://github.com/nihui/ncnn-android-mobilenetssd
- https://github.com/moli232777144/mtcnn_ncnn
- https://github.com/nihui/ncnn-android-yolov5
- https://github.com/xiang-wuu/ncnn-android-yolov7
- https://github.com/nihui/ncnn-android-scrfd 🤩
- https://github.com/shaoshengsong/qt_android_ncnn_lib_encrypt_example







-
https://github.com/mizu-bai/ncnn-fortran 通过Fortran调用ncnn
-
https://github.com/k2-fsa/sherpa 采用ncnn实现实时语音识别(语音转文字),同时支持嵌入式设备并提供移动端应用(如安卓APP)