ChiPy:在芯片上桥接神经网络与C++,实现零CPU往返的完整推理管线

2026/05/19 16:00阅读量 3

Quadric 推出 ChiPy DSL,基于其 Chimera GPNPU 架构,允许开发者将骨干网络推理、框解码与 NMS 等后处理步骤编译为单个芯片上程序,无需主机 CPU 参与。以 YOLOX-M 为例,整个检测管线完全在 GPNPU 上执行,NMS 等标量控制流任务不再需要 CPU 回传,显著降低延迟。

事件概述

Quadric 公司发布 ChiPy DSL,这是一个面向 GPNPU 的 Python 框架,能将完整的应用管线(预处理、神经网络推理、后处理)编译为单芯片执行的程序,彻底消除推理结果与主机 CPU 之间的数据往返。

核心信息

传统管线瓶颈

在边缘部署中,目标检测管线通常分为两步:神经网络骨干在加速器(GPU/NPU/DSP)上运行,然后将结果传回 CPU 进行框解码、分数过滤和非极大值抑制(NMS)。这一往返过程会引入显著延迟:NMS 本身可占边缘部署总管线延迟的 30-50%。数据传输需要经过加速器本地内存、总线、DDR,再由 CPU 处理标量控制流,最后返回结果。传统 NPU 只处理矩阵乘法,无法处理比较、分支、排序等动态控制逻辑。

ChiPy 与 Chimera GPNPU 架构

ChiPy 是 Quadric 的 Python DSL,提供类 NumPy 的语法,并支持双模式执行:同一代码可在 CPU 上验证,也可编译到 GPNPU 上部署。它通过 @chipy.ccl_custom_op 桥接 C++ CCL 内核,通过 @chipy.func 定义顶层管线。底层 Chimera GPNPU 的核心架构统一处理 MAC 运算、向量数学、标量控制流和分支逻辑,使得后处理中的分支和动态循环也能在加速器上高效运行。

YOLOX-M 端到端管线示例

以 YOLOX-M(2530 万参数,640x640 输入,int8 量化)为例,管线分为两个阶段:

  1. 骨干推理:由 CGC(Chimera Graph Compiler)从量化 ONNX 模型编译,输出三个 FPN 头(分类、回归、目标性得分)。
  2. 解码 + NMS:CCL 自定义内核在单次调用中处理所有 8400 个候选框的坐标解码、置信度过滤和 NMS。

管线由以下 5 行 ChiPy 代码串联:
python
@chipy.func
def yolox_e2e(input_image):
cls_out, bbox_out, obj_out = yolox_backbone(input_image)
boxes, scores, classes = yolox_decode_nms(cls_out, bbox_out, obj_out)
return boxes, scores, classes

数据从骨干输出直接流转到后处理内核,全程使用片上内存,无需 DDR 往返或 CPU 介入。

参数
模型YOLOX-M(2530 万参数)
输入640x640,int8 量化
数据集COCO 80 类
管线骨干 (CGC) + 解码 + NMS (CCL)
目标Chimera GPNPU(8 核,16 MACs/PE,8 MB OCM)
量化非对称 int8 激活,int8 权重

性能优势

  • 确定性延迟:GPNPU 使用软件管理的 Scratchpad 内存,无硬件缓存,消除帧间抖动。
  • 消除 DDR 瓶颈:所有 8400 个解码候选框及后处理完全在片上内存(OCM)完成。
  • 单核执行标量控制流:框解码中的指数变换、分数过滤中的分支判断、NMS 中的嵌套动态循环均由 GPNPU 的标量单元直接处理,无需 CPU 回传。

值得关注

ChiPy 的发布表明,通过统一架构(GPNPU)和 DSL 编译技术,后处理这一传统加速器盲区可以在芯片上高效实现。这对于边缘部署中要求低延迟、高确定性的目标检测场景具有实用价值。

准备好启动您的定制项目了吗?

现在咨询,即可获得免费的业务梳理与技术架构建议方案。