TensorRT

  1. 从 0 到 1:TensorRT-OSS 编译与上手(含 Windows 与 Linux)

ncnn

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。 ncnn 从设计之初深刻考虑手机端的部署和使用。 无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。 基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行, 开发出人工智能 APP,将 AI 带到你的指尖。 ncnn 目前已在腾讯多款应用中使用,如:QQ,Qzone,微信,天天 P 图等。Github

  1. 读 ncnn 源码笔记:从 sample 到 Net::load_param 的完整链路
  2. 读 ncnn 源码(Ⅱ):层工厂与“覆盖机制”,以及 CPU 端的指令集优选
  3. 读 ncnn 源码(Ⅲ):ParamDict 解析、featmask 按层屏蔽、词法器与 blob 索引(含解析实录)
  4. 读 ncnn 源码(Ⅳ):Convolution 基类与 x86/FMA 特化 —— 参数到算子的全链路
  5. 读 ncnn 源码(Ⅴ):Param 读取闭环——从 token 到图,再到 I/O 名单
  6. 读 ncnn 源码(Ⅵ):模型权重加载链路 —— DataReader / ModelBin / create_pipeline
  7. 读 ncnn 源码(Ⅶ):以卷积层为例——权重加载与 x86/FMA pipeline 选路
  8. 读 ncnn 源码(Ⅷ):核心算法细讲——Activation 工厂、CPU 后端选择、im2col+GEMM 权重打包与分块
  9. 读 ncnn 源码(Ⅸ):im2col+GEMM 原理与 Mat::reshape(w,h,c) 的对齐与 cstep
  10. 读 ncnn 源码(Ⅹ):Winograd F(2×2,3×3) 的内核变换、选路与打包(含对比 packed sse)
  11. 读 ncnn 源码(Ⅺ):Packed Kernel Transform 的“通性”
  12. 读 ncnn 源码(Ⅻ):图像预处理流水线——从像素到张量的“最后一公里”
  13. 读 ncnn 源码(XIII):Extractor::extract——触发推理的引擎核心
  14. 读 ncnn 源码(XIV):convert_layout——层间数据格式的“翻译官”
  15. 读 ncnn 源码(XV):Pimpl 惯用法——解耦接口与实现的 C++ 设计基石
  16. 读 ncnn 源码(XVI):ncnnoptimize——神经网络图优化的“炼金术”
  17. 读 ncnn 源码(XVII):fuse_convolution_batchnorm——融合 BN,轻装前行
  18. 读 ncnn 源码(XVIII):fuse_convolution_mul——融合逐通道乘法,优化线性计算链
  19. 读 ncnn 源码(XIX):fuse_convolution_add——融合逐通道加法,进一步合并线性计算
  20. 读 ncnn 源码(XX):fuse_convolutiondepthwise_batchnorm——为深度可分离卷积“减负”
  21. 读 ncnn 源码(XXI):fuse_convolutiondepthwise_mul——为深度可分离卷积“乘”胜追击
  22. 读 ncnn 源码(XXII):fuse_convolutiondepthwise_add——合并深度卷积的偏置链
  23. 读 ncnn 源码(XXIII):fuse_deconvolution_batchnorm——反卷积层的 BN 融合
  24. 读 ncnn 源码(XXIV):fuse_deconvolution_mul——反卷积层的乘法融合
  25. 读 ncnn 源码(XXV):fuse_deconvolution_add——合并反卷积层的偏置链
  26. 读 ncnn 源码(XXVI):fuse_deconvolutiondepthwise_batchnorm——深度反卷积的 BN 融合
  27. 读 ncnn 源码(XXVII):fuse_innerproduct_batchnorm——全连接层的 BN 融合
  28. 读 ncnn 源码(XXVIII):fuse_innerproduct_add——合并全连接层的偏置链
  29. 读 ncnn 源码(XXIX):fuse_innerproduct_dropout——推理时移除 Dropout
  30. 读 ncnn 源码(XXX):replace_reduction_with_global_pooling——算子替换:识别低效模式
  31. 读 ncnn 源码(XXXI):replace_prelu_with_leaky_relu——算子退化:用高效实现替换冗余
  32. 读 ncnn 源码(XXXII):fuse_convolution_activation——将“激活”压入计算核心
  33. 读 ncnn 源码(XXXIII):激活融合——ConvDWDeconvInnerProduct 的“一体化”改造
  34. 读 ncnn 源码(XXXIV):fuse_memorydata_binaryop——将“常量”烘焙进“算子”
  35. 读 ncnn 源码(XXXV):fuse_binaryop_eltwise——识别加权求和并替换为 Eltwise
  36. 读 ncnn 源码(XXXVI):算子消除——eliminate_dropout/pooling1x1/noop/split
  37. 读 ncnn 源码(XXXVII):eliminate_orphaned_memorydata——图优化的“垃圾回收”
  38. 读 ncnn 源码(XXXVIII):消除冗余塑形——eliminate_flatten/reshape 的瘦身之道
  39. 读 ncnn 源码(XXXIX):消除冗余塑形(下)——eliminate_reshape_before_binaryop
  40. 读 ncnn 源码(XL):算子替换——当“卷积”退化为“全连接”
  41. 读 ncnn 源码(XLI):shape_inference——图优化的“沙盘推演”与“状态重整”
  42. 读 ncnn 源码(XLII):ncnnoptimize 的“编排艺术”——优化 Pass 的依赖与顺序 (ncnnoptimize 完结篇)

AI System

  1. 介绍

Mini-Infer

  1. Mini-Infer 架构深潜 (1): 构建高性能、可扩展的 Tensor 基石
  2. Mini-Infer 架构深潜 (2): 抽象 Backend 层 - 解耦异构计算
  3. Mini-Infer 架构深潜 (3): Operator 抽象与“自注册”工厂
  4. Mini-Infer 架构深潜 (4): Graph 与 Node - 编织计算“神经网”
  5. Mini-Infer 架构深潜 (5): Engine - 联结万物的“总指挥”
  6. Mini-Infer (6): 点亮引擎!实现 infer_shape, ReLUGEMM 抽象
  7. Mini-Infer (7): 高性能“内核注册表” (A TensorRT-Style Kernel Registry)
  8. Mini-Infer (7.5): 架构的“魔鬼细节” - 深入辩论“内核注册”
  9. Mini-Infer (7.6): 架构重构 - 用“模板元编程”消除内核注册的“样板戏”
  10. Mini-Infer (8): Im2Col算法完全讲解
  11. Mini-Infer (9): 打造高性能算子的基石 — RAII Buffernoexcept 极致优化
  12. Mini-Infer (10): 卷积的终极形态 - Conv2D 实现与 BiasKernel 集成
  13. Mini-Infer (11): 下采样利器 — Pooling 算子与架构复用之美
  14. Mini-Infer (12): 特征提取的收缩 — Pooling 算子与架构复用
  15. Mini-Infer (13): 端到端验证 — LeNet-5 实战与 PyTorch 对齐
  16. Mini-Infer (14): 迈向 ONNX — Flatten 算子与零拷贝视图
  17. Mini-Infer (15): OnnxParser 架构设计
  18. Mini-Infer (16): 模型导入的核心 — ImporterContextOperatorRegistry
  19. Mini-Infer (17): 深入字节流 — WeightImporter 与权重加载
  20. Mini-Infer (18): 编排导入流程 — ModelImporterAttributeHelper
  21. Mini-Infer (19): 内置算子导入实战 — Conv, ReLU, Pooling 与 Flatten
  22. Mini-Infer (20): 优化器的骨架 — Pass Manager 架构设计
  23. Mini-Infer (21): 图优化实战 — TensorRT 风格的 FusionPass 与延迟删除