Home
Login

ncnn 是針對移動平台優化的高性能神經網路推理框架

NOASSERTIONC++ 21.7kTencentncnn Last Updated: 2025-06-27

ncnn - 騰訊開源移動端神經網路推理框架

項目概述

ncnn 是一個為手機端極致優化的高性能神經網路前向計算框架。ncnn 從設計之初深刻考慮手機端的部署和使用。無第三方依賴,跨平台,手機端 cpu 的速度快於目前所有已知的開源框架。

項目地址: https://github.com/Tencent/ncnn

開發團隊: 騰訊公司開源項目

核心特性

1. 極致的移動端優化

  • 為移動平台而生:從設計之初就專門針對移動設備進行優化
  • 無第三方依賴:不依賴BLAS、NNPACK等任何其他計算框架
  • 純C++實現:確保跨平台兼容性和高性能

2. 卓越的性能表現

  • ARM NEON匯編級優化:採用匯編級別的精心優化,計算速度極快
  • 精細的內存管理:內存佔用極低,適合資源受限的移動設備
  • 多核並行計算:支持ARM big.LITTLE CPU調度優化

3. 廣泛的平台支持

  • 跨平台:支持Android、iOS、Linux、Windows、macOS等多個平台
  • 多架構支持:支持ARM、x86等不同CPU架構
  • GPU加速:支持基於Vulkan API的GPU加速

4. 豐富的模型支持

  • 多框架模型導入:可導入Caffe、PyTorch、MXNet、ONNX、Darknet、Keras、TensorFlow等主流框架的模型
  • 量化支持:支持8bit量化和半精度浮點存儲
  • 直接內存加載:支持零拷貝引用加載網路模型

技術架構

支持的網路類型

  • 經典CNN網路:VGG、AlexNet、GoogleNet、Inception等
  • 實用CNN網路:ResNet、DenseNet、SENet、FPN等
  • 輕量級CNN:SqueezeNet、MobileNet系列、ShuffleNet系列、MNasNet等
  • 人臉檢測:MTCNN、RetinaFace、SCRFD等
  • 目標檢測:YOLO系列、SSD系列、Faster-RCNN等
  • 圖像分割:FCN、PSPNet、UNet、YOLACT等
  • 姿態估計:SimplePose等

平台兼容性矩陣

平台/硬體 Windows Linux Android macOS iOS
Intel CPU ✔️ ✔️ ✔️ /
Intel GPU ✔️ ✔️ /
AMD CPU ✔️ ✔️ ✔️ /
AMD GPU ✔️ ✔️ /
NVIDIA GPU ✔️ ✔️ /
Qualcomm ✔️ / /
ARM CPU / /
Apple CPU / / / ✔️

✅ = 已知可運行且性能優秀;✔️ = 已知可運行;❔ = 理論可行但未確認;/ = 不適用

實際應用

ncnn目前已在騰訊多款核心應用中使用,包括:

  • QQ
  • QZone(QQ空間)
  • 微信
  • 天天P圖
  • 其他騰訊應用

開發生態

示例項目

  • Android應用示例
    • SqueezeNet圖像分類
    • 風格遷移應用
    • MobileNet-SSD目標檢測
    • MTCNN人臉檢測
    • YOLOv5/YOLOv7目標檢測
    • SCRFD人臉檢測

工具支持

  • 模型可視化:支持使用Netron進行模型可視化
  • 自定義層:支持註冊和實現自定義層
  • 量化工具:提供模型量化工具

社區支持

  • 技術交流QQ群:637093648、677104663、818998520
  • Telegram群組Discord頻道
  • 詳細文檔:完整的wiki文檔和API參考

開始使用

構建支持

ncnn支持在以下平台上構建:

  • Linux / Windows / macOS
  • Raspberry Pi 3/4
  • Android
  • iOS
  • WebAssembly
  • NVIDIA Jetson
  • 全志D1
  • 龍芯2K1000

快速入門

推薦從使用ncnn運行AlexNet教程開始,該教程提供了詳細的步驟說明,特別適合初學者。

項目優勢

  1. 性能卓越:在移動端CPU上的運行速度超越所有已知開源框架
  2. 資源友好:內存佔用極低,適合資源受限環境
  3. 易於集成:無第三方依賴,集成簡單
  4. 生產驗證:在騰訊多個億級用戶應用中得到驗證
  5. 持續維護:活躍的開源社區和持續的版本更新
  6. 廣泛兼容:支持主流深度學習框架的模型導入

ncnn是移動端AI應用開發的理想選擇,特別適合需要在移動設備上部署深度學習模型的開發者和企業。

Star History Chart