为什么 KAN 适合 FPGA
Kolmogorov-Arnold Networks(KAN)自提出以来,因其在函数逼近和可解释性上的优势受到关注,但硬件实现效率一直是质疑的焦点。传统观点认为,KAN 的样条激活函数计算复杂,在 FPGA 上部署会消耗大量 DSP 和 BRAM 资源。然而,最新研究表明,KAN 的激活中心设计实际上与 FPGA 的 LUT(查找表)架构天然契合。
与 MLP 的矩阵乘法不同,KAN 将可学习的激活函数置于网络边而非节点,每个激活都是定义在固定域上的一维样条函数。这种结构使得激活函数可以被直接离散化为 LUT,而非通过算术单元实时计算。在 KANELÉ 框架中,每个 B - 样条激活被预计算并存储为逻辑查找表,推理时仅需查表和加法操作,完全消除了对 DSP 和 BRAM 的依赖。
KANELÉ:软硬件协同设计框架
KANELÉ(Kolmogorov-Arnold Networks for Efficient LUT-based Evaluation)是首个系统性的 KAN FPGA 部署框架,其核心创新在于训练 - 量化 - 剪枝 - 映射的全流程协同优化。
量化感知训练与剪枝
框架采用 Brevitas 库进行量化感知训练(QAT),在训练阶段即引入固定位宽约束。每个 KAN 层的输出经过均匀量化:
x_{l+1,q} = s_l · Quantize[n_l](clip(x_{l+1}, a, b) / s_l)
剪枝策略利用 KAN 的加法独立性 —— 每个 LUT 对输出的贡献是独立的,因此可以基于 L2 范数评估边的重要性并安全剪除,而不会破坏模型结构。这与传统 LUT-based 网络(如 PolyLUT)形成鲜明对比,后者的顺序索引结构使剪枝几乎不可能。
LUT 映射与流水线架构
训练完成后,每个保留下来的边被转换为逻辑 LUT(L-LUT),输入空间被枚举并预计算激活响应。RTL 生成器输出完整的 VHDL 实现,包含:
- 平衡加法树:采用流水线化设计,每级处理最多 n_add 个输入,深度为 ⌈log_{n_add}(N_ℓ)⌉
- 层间流水线:在层间插入寄存器隔离关键路径
- 零 DSP/BRAM 设计:所有计算通过 LUT 和 FF 完成
在 Dry Bean 数据集上的实现仅使用 402 个 LUT 和 471 个 FF,延迟 7.1 ns,而此前 Tran 等人的 KAN-FPGA 实现需要超过 160 万 LUT 和 73 万 FF,延迟高达 18.96 μs——资源效率提升超过 4000 倍。
亚微秒级在线学习
更激进的突破来自在线学习场景。传统 MLP 的反向传播需要密集矩阵运算,在固定点量化下容易数值不稳定。KAN 的 B - 样条局部支持特性改变了这一局面:对于每个输入,仅有 s = p+1 个基函数非零(p 为样条阶数),这意味着每次更新只需修改 O (s) 个系数,而非全部参数。
理论分析表明,在相同参数预算 N 下,KAN 的更新复杂度为 MLP 的 s/(G+s),其中 G 为网格大小。当 G ≫ s 时,更新成本显著降低。这一特性在 FPGA 上实现了亚 100 ns 的前向 + 后向传播延迟,首次达成亚微秒级的模型无关在线学习。
实验对比显示,在固定点量化(⟨6,2⟩ 格式)的回归任务中,KAN 保持稳定收敛,而参数匹配的 MLP 出现发散;在量子比特读取的在线分类任务中,KAN 在 10-bit 精度下的准确率随网格大小 G 单调提升,而 MLP 增加参数量 N 反而导致量化不稳定。
性能对比与工程参数
推理性能(JSC CERNBox 数据集)
| 架构 | 准确率 | LUT | FF | F_max (MHz) | 延迟 (ns) | Area×Delay |
|---|---|---|---|---|---|---|
| KANELÉ | 75.1% | 5,034 | 1,917 | 870 | 8.1 | 4.1×10⁴ |
| NeuralLUT-Assemble | 75.0% | 8,539 | 1,332 | 352 | 5.7 | 4.87×10⁴ |
| PolyLUT | 75.0% | 246,071 | 12,384 | 203 | 25 | 6.15×10⁶ |
MLPerf Tiny 异常检测(ToyADMOS)
| 指标 | KANELÉ | hls4ml |
|---|---|---|
| AUC | 0.83 | 0.83 |
| LUT | 29,981 | 51,429 |
| FF | 17,643 | 61,639 |
| 吞吐量 | 228 M inf/s | 694 k inf/s |
| 延迟 | 0.07 μs | 45 μs |
| 能耗 / 推理 | 0.01 μJ | 98.4 μJ |
强化学习控制(HalfCheetah)
8-bit 量化的 KAN 策略网络(维度 [17,6],1020 参数)在 FPGA 上实现:
- 延迟:4.5 ns
- 资源:1,136 LUTs / 2,828 FFs
- 奖励:2,762(超过 5 倍参数量的 MLP 的 1,559)
对比之下,同等位宽的 MLP 网络(维度 [17,64,64,6],5,383 参数)在相同 FPGA 上无法综合,HLS 估计需要 230,400 LUTs 和 460,800 FFs。
关键设计参数与调优建议
基于 KANELÉ 的实验,以下是部署 KAN 到 FPGA 的核心参数:
样条参数(仅影响精度)
- 网格大小 G:控制分辨率,典型值 10-40
- 样条阶数 S:通常设为 3(三次样条)
- 定义域 [a,b]:根据输入分布设置,如 [-8,8]
硬件参数(精度 - 资源权衡)
- 层位宽 n_l:每层的量化位数,6-8 bit 为甜点区
- 层维度 d_l:直接决定 LUT 数量,与边数成正比
- 剪枝阈值 T:控制稀疏度,典型值 0.1-0.9
流水线参数
- 加法树分支因子 n_add:通常设为 2,影响流水线深度
- 目标时钟周期:根据 FPGA 全局时钟设定,如 5 ns(200 MHz)
局限与未来方向
当前 KAN-FPGA 方案在图像等高维输入任务上仍面临挑战 —— 输入维度增加会导致 LUT 数量指数增长(尽管可通过剪枝缓解)。此外,卷积 KAN、时序 KAN 等变体尚未有成熟的 FPGA 实现。
未来工作方向包括:
- 探索傅里叶基、小波基等替代正交基函数
- 开发卷积 KAN 的 FPGA 架构
- 实现部分重配置支持运行时 LUT 热更新
- 扩展到 Transformer 风格的 KAN-GPT 架构
结论
KANELÉ 及其后续工作证明,KAN 并非硬件不友好 —— 恰恰相反,其激活中心、局部支持和加法结构使其成为 FPGA LUT 架构的理想匹配。通过软硬件协同设计,KAN 在 FPGA 上实现了纳秒级推理延迟和亚微秒级在线学习,在资源效率、量化鲁棒性和实时适应性上全面超越传统 MLP。对于量子控制、等离子体稳定、自适应光学等需要微秒级响应的应用场景,KAN-on-FPGA 代表了一个值得深入探索的新范式。
参考来源
- Hoang et al., "KANELÉ: Kolmogorov-Arnold Networks for Efficient LUT-based Evaluation," FPGA 2026. arXiv:2512.12850
- Hoang et al., "Ultrafast On-Chip Online Learning via Spline Locality in Kolmogorov-Arnold Networks," arXiv:2602.02056
- Liu et al., "KAN: Kolmogorov-Arnold Networks," arXiv:2404.19756
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。