Calculet NPU CALVX 算子与端到端模型移植黑客松
选手赛题文档
1. 简介
Calculet 是自研 NPU 算子开发套件,上层基于 Rust + Cargo 进行算子开发。开发者编写 Rust 算子代码,通过自定义编译目标 npu-calculet-unknown-calvx 编译,输出 CALVX 虚拟指令中间表示(.calvx)。
CALVX 是硬件无关的虚拟指令层,定位类似 CUDA PTX;CALVX 经过后端编译器 lower 后,生成 Calculet NPU 原生硬件指令,才能在真机上执行。
为了节约珍贵的真机资源,我们提供 calvx-verifier:运行在 CPU 上,做静态合法性校验(指令格式、数据流、资源约束、内存访问规则检查)。
当前 Calculet 内置算子库优先面向大语言模型,Stable Diffusion、SAM 图像分割、视频生成等 CV / 多模态模型依赖的大量算子尚未实现,无法直接在 NPU 上部署推理。
本次黑客松邀请开发者补齐算子生态,你可以任选两条路线参赛:实现独立算子,或是补齐整套依赖算子、打通开源推理前端,完成端到端模型 NPU 推理。端到端打通模型、对接 ComfyUI 等生态的成果,拥有更高的评价权重。
技术链路
- 选手编写 Rust 算子代码
cargo build --target=npu-calculet-unknown-calvx产出 CALVX(.calvx)calvx-verifier在 CPU 上做静态校验,本地不限次数- 校验通过后提交真机队列
- 后端编译器将 CALVX lower 为 NPU 原生硬件指令
- 真机执行,采集精度、性能与端到端输出效果
真机资源有限,存在排队延迟,请优先使用本地 verifier 自测。
2. 开发环境与工具链
报名审核通过后,你将获取完整开发包,包含:
- Rust 工具链 + 定制 target spec:
npu-calculet-unknown-calvx calvx-verifierCPU 校验程序- 官方算子模板库、参考样例算子工程
- CALVX IR 规范、NPU 内存模型、tiling 与同步语义文档
- Golden 参考 Harness、张量精度比对脚本
- ComfyUI 桥接适配样例(骨架参考)
- 已实现算子清单(请避开重复实现已有算子)
编译命令:
cargo build --target=npu-calculet-unknown-calvx
编译产物:target/npu-calculet-unknown-calvx/release/*.calvx
配套 .cargo/config.toml 模板(样例自带):
[target.npu-calculet-unknown-calvx]
linker = "calculet-calvx-linker"
runner = "calvx-verifier"
3. 参赛路线(自由选择,可迭代升级)
路线 A:算子开发
实现官方算子库中不存在的算子,支持单算子或 Fused 融合算子。
算子可以是 Diffusion、SAM、视频模型依赖的基础运算、归一化、采样、卷积变种、多维张量运算等。
要求:编译产出合法 CALVX,verifier 校验通过,真机运行输出和 CPU Golden 参考满足精度要求,算子可以独立注册到算子库、被图推理框架调用。
路线 B:端到端模型移植(高价值方向)
补齐目标模型所缺失的全部算子,并完成推理前端桥接适配,最终在 Calculet NPU 上跑通完整模型推理。
推荐目标:
- Stable Diffusion 系列:对接 ComfyUI 原生工作流,由 ComfyUI 发起推理请求,全部计算下沉 NPU,产出图像
- SAM 图像分割:产出分割掩码
- 视频生成模型
判定重点不是零散的算子集合,而是由 ComfyUI 等原生前端下发任务、计算全部在 NPU 上完成、产出符合模型预期的图像 / 掩码,不依赖 CPU 兜底大量算子。能一键拉起 ComfyUI 工作流、稳定出图、支持多尺寸输入的方案,是本次赛事的标杆成果。
你可以从路线 A 起步,截止前迭代升级到路线 B;评审以最终提交包的最高阶成果判定路线,报名时不锁定赛道。
4. 提交方式与 FAQ
待组委会发布。代码仓库:git.calculet.t12e.cc(账号在报名审核通过后发放)。