Project Architecture

面向 YOLO 图像智能识别的低功耗智能处理器设计

这里固定表达项目目标、规划、总体方案、模块分解、资料体系、技术细节方案与总体进展。进展类数据放到“进展”页,通过 JSON 自动更新。

项目目标

本项目目标是设计一款面向图像智能识别的低功耗智能处理器,以 YOLO 系列算法、640 x 512 输入图像、最高 FPS/最低功耗为主要评价标准,推动从“人工选型加经验优化”向“资料搜索、算法分析、架构生成、编译映射、评估优化”闭环自动化的工程范式转变。

总体规划

  • 搜索图书、论文、开源项目中的 AI 加速器、NPU、GPGPU 和边缘推理处理器资料,提取技术点、适用场景、单元结构、数据流、存储层次和 IPO。
  • 以 YOLO 图像识别为第一应用域,解析 YOLO 源码、模型结构和算子需求,形成算子 IPO、形状、带宽、片上缓存、访存和控制需求。
  • 自动组合硬件先进技术,生成智能芯片结构、指令集、数据通路和存储结构候选,逐步扩展到 100 种可比较架构。
  • 设计与指令集对应的编译器和中间表示,把 YOLO 算子图映射到候选硬件结构。
  • 搭建最小可行系统,用解析模型、仿真模型和后续 RTL/原型数据迭代评估 FPS、功耗、面积和带宽瓶颈。
  • 以持续自动化方式推进:每小时记录进展,每日总结,每周归纳技术路线和架构候选变化。

总体方案

总体架构分为四个闭环:资料闭环、算法闭环、架构闭环、评估闭环。

资料闭环负责把论文、芯片手册、开源硬件和编译器项目转成统一技术点库。每个技术点都必须说明来源、适用场景、输入、处理过程、输出、硬件代价、优势、风险和可组合边界。

算法闭环负责把 YOLO 源码和模型文件转成算子图、张量形状、MAC 数、激活读写量、权重规模、访存复用机会和特殊控制流。第一阶段基线为 YOLOv5s,后续扩展 YOLOv8、YOLOv10、YOLOv11 或其他更适合边缘推理的变体。

架构闭环负责从算子需求反推处理器结构,包括 MAC 阵列、SIMD/GPGPU 风格执行单元、NPU 数据流阵列、片上 SRAM、DMA、NoC、压缩/稀疏单元、量化单元、后处理单元和主控指令系统。

评估闭环负责用同一套输入模型比较架构候选。评价指标包括 640 x 512 图像下的 FPS、功耗代理指标、片外带宽、片上 SRAM 压力、面积代理指标、编译复杂度和工程实现风险。

分解模块

  • 资料搜索模块:维护资料源、技术点、适用场景和 IPO 抽取模板。
  • YOLO 分析模块:解析模型结构、源码路径、算子需求、张量形状和资源估算。
  • 架构搜索模块:组合候选单元、数据流、存储层次和并行策略。
  • 指令集与编译器模块:定义 ISA、IR、调度策略、内存规划和算子 lowering。
  • 最小系统与评估模块:实现解析估算器、行为仿真器、性能模型和功耗代理模型。
  • 协同与日志模块:由 Codex 主导研发判断,Hermes/Kimi 执行资料和网站辅助任务,Kimi Code 负责日志网站表达和更新。

已搜索资料

当前资料库已经纳入 Eyeriss、NVDLA、VTA、Gemmini、YOLOv5、YOLOv8 等起始资料,并通过 Hermes 扩展到更多 AI 加速器和开源硬件来源。后续资料库不只记录“有什么”,还要记录“它解决哪个瓶颈、在哪些场景有效、和 YOLO 工作负载的关系是什么”。

技术细节方案

第一阶段重点不是直接写 RTL,而是建立可比较的技术空间。每个候选架构至少要明确:

  • 计算单元:MAC 阵列、SIMD、张量核、向量单元或混合结构。
  • 数据流:weight stationary、output stationary、row stationary、tile-based、streaming 或混合数据流。
  • 存储层次:寄存器文件、PE 本地缓存、共享 SRAM、片外 DDR、DMA 双缓冲。
  • 控制方式:固定功能流水、微码、VLIW、RISC 控制核、GPGPU warp 风格调度。
  • 编译映射:算子切分、张量布局、访存调度、融合策略、量化策略。
  • 评估指标:FPS、功耗代理、片外带宽、SRAM 容量、利用率、面积风险、实现复杂度。

当前总体进展

当前已经完成项目工作区、协同协议、每日备份、小时进展自动化、资料源初始库、YOLOv5s 源码基线、静态算子清单、进展网站和 Cloudflare Pages 发布链路。第一阶段已进一步完成 20 条资料源、12 条技术点、15 个架构候选、YOLOv5s 25 层结构解析、640 x 512 形状表、MAC/权重/激活字节估算表、ISA v0、Model IR v0、Tile IR v0、Memory IR v0 和解析评估器输入 schema。评估器 v1 已输出前 12 个架构候选的 FPS、功耗代理、compute/memory 分项和每层瓶颈分类。当前最高 FPS 代理候选为 ARCH-0005,低功耗重点候选为 ARCH-0007,软件定义扩展候选为 ARCH-0010。下一步主线是执行 PyTorch/ONNX 形状验证并把评估器从代理模型推进到可校准模型。

2026-05-26 架构选型结论

  • 15 个架构候选(ARCH-0001 ~ ARCH-0015)完成 5 维加权评分(FPS 30%、功耗 25%、带宽 20%、SRAM 15%、风险 10%)。
  • 第一推荐:ARCH-0003(TensorCore-like,32x32 systolic + 2:4 稀疏 + BF16),加权总分 62.45,综合平衡最佳。
  • 第二推荐:ARCH-0015(Dual-Mode NPU,同时高效支持 CNN + Transformer),加权总分 62.40,前瞻性强。
  • 第三推荐:ARCH-0007(异构多核,NPU + RISC-V 控制核 + 后处理引擎),加权总分 60.15。
  • 下一步主线:将 ARCH-0003 选型结论整合到 ISA v2 详细设计,建立 YOLOv5s 完整 lowering 端到端示例。

2026-05-26 架构主线恢复

  • 重新确认主工程权威目录为 E:\\HermesWorkspace\\IntelligentProcessorProject,避免主线工作分裂到旁支试验目录。
  • 在现有资料、YOLO 解析、候选架构和评估器基线上,补出新一轮以端到端系统为中心的架构方案:总体方案、工作负载模型、候选架构比较、ISA 草案、性能模型假设、逐层 profile 模板。
  • 当前新增判断是:YOLO 芯片不能只围绕卷积阵列设计,Neck 搬运、Detect Head 和 NMS 后处理必须一起纳入架构与编译器路径。
  • 下一步将把这批 v1 文档继续细化为真实 ONNX 层 profile、架构扫点和更正式的端到端比较报告。

2026-05-26 ISA v2 详细设计完成

  • 完成 ISA 详细设计 v2(TASK-0082),输出 04_isa_compiler/ISA_DETAIL_V2_20260526.md
  • 基线架构选定为 ARCH-0003(TensorCore-like,32×32 systolic 阵列 + 2:4 结构化稀疏 + BF16)并结合 ARCH-0009(Winograd 变换单元)。
  • 定义 64-bit 固定长度指令格式,共 76 条指令,覆盖系统控制、DMA 双缓冲、计算(含稀疏卷积和 Winograd)、布局变换、后处理(Detect/NMS)和同步六大类。
  • 提供 YOLOv5s 端到端 lowering 示例:从 Conv → BN → SiLU → Concat 的完整指令序列。
  • 当前任务状态:91 done / 0 in_progress / 5 pending,下一任务 TASK-0083(端到端 lowering 示例扩展)。

2026-05-26 端到端 Lowering 示例完成

  • 完成 TASK-0083,输出 04_isa_compiler/END_TO_END_LOWERING_EXAMPLE.md(18581 字节)。
  • 建立 YOLOv5s 完整四层 IR 编译流程:Model IR → Tile IR → Memory IR → ISA v2 指令序列。
  • 覆盖 6 个代表性网络层:Conv 6x6(首层)、Conv 3x3 + Winograd、C3 模块(5 子节点展开)、Upsample 2x、Concat 零拷贝、Detect Head(6 子操作)。
  • SRAM 512KB 四区分配(IFM/Weight/OFM/Accumulator),张量生命周期管理,DDR spill 策略。
  • DMA ping-pong 双缓冲调度,Winograd F(2×2, 3×3) 变换,NHWC_BLOCKED 零拷贝 Concat。
  • 性能估算:子图 2620M MACs / 1.82ms / DDR 带宽 9.99 GB/s(假设 1GHz, 32×32 systolic @ 1024 MAC/cycle)。
  • 下一步:TASK-0084 生成最终架构推荐方案,TASK-0086 建立分层性能预测工具。