1. 激活压缩概述:为什么需要激活压缩?

大家好,我是你们这门课的老朋友。今天咱们聊聊一个很实在的问题——激活压缩。

你可能听过这个词,也可能觉得它离自己有点远。但我可以负责任地告诉你:在现在的芯片设计里,激活压缩已经不是「锦上添花」,而是「雪中送炭」了。

为什么这么说?

咱们先看一个数字。我几年前做过一个中等规模的卷积神经网络加速器,光是一层卷积的激活值,就要占掉几十兆字节的片上存储。你想想看,几十兆在先进工艺里是什么概念?那几乎要把整个芯片的面积吃掉一大块。

所以,激活压缩的核心目的就两个:省面积、省带宽。

1.1 激活值在芯片中的存储与带宽瓶颈

先说说存储。激活值是什么?说白了,就是神经网络每一层计算完的输出。这些数据要暂存在片上,等下一层来用。

我见过不少团队,算法跑得挺欢,一到硬件实现就傻眼了——激活值太大,SRAM 放不下。怎么办?要么加面积,要么降性能。加面积意味着成本飙升,降性能意味着产品竞争力下降。两头都难受。

再说带宽。现代神经网络推理,大部分时间都花在数据搬运上。你算得快没用,数据送不过来。激活值在芯片内部、芯片与外部存储器之间来回倒腾,带宽就成了真正的瓶颈。

核心矛盾:计算能力增长快于存储与带宽增长。激活值越大,这个矛盾越突出。

我举个例子。假设你有一个 256 通道的特征图,尺寸是 56×56,每个激活值用 8 比特表示。这一层就要 256 × 56 × 56 × 1 字节 ≈ 800 KB。如果芯片上有 8 层这样的数据同时驻留,那就是 6.4 MB。对于很多边缘芯片来说,这已经是片上 SRAM 的全部家当了。

所以,压缩激活值,本质上就是在跟物理定律做交易——用计算换存储,用算法换带宽。

1.2 激活压缩的收益:一张图看懂

下面这张图,是我自己画的一个框架图。它把激活压缩在整个芯片设计中的位置和收益讲清楚了。

激活压缩在芯片中的核心作用 激活压缩在芯片中的核心作用 神经网络层计算 激活值产生(中间结果) 激活压缩引擎 量化 · 剪枝 · 稀疏编码 · 低秩分解 片上 SRAM 节省 面积减少 40%~70% 片外带宽降低 DDR 访问减少 50%+ 动态功耗下降 数据搬运减少 60% 芯片面积更小 · 能效更高 · 成本更低 同等算力下,芯片总成本降低 30%~50%

从这张图可以看得很清楚:激活压缩不是孤立的技术,它直接作用于存储、带宽和功耗三个维度。这三个维度,恰恰是芯片设计中最难啃的骨头。

1.3 为什么现在非做不可?

你可能要问:以前不压缩不也活得好好的吗?

嗯,这个问题问得好。我简单说三点:

  • 模型越来越大。几年前 ResNet-50 算大的,现在 ViT、LLM 动辄几百兆参数。激活值也跟着水涨船高。
  • 工艺进步变慢。摩尔定律放缓,片上 SRAM 密度提升有限。你没法指望工艺自动帮你解决问题。
  • 实时性要求变高。自动驾驶、工业检测这些场景,延迟是硬指标。数据搬来搬去,时间就浪费了。

一个小技巧:我习惯在项目早期就做激活值分布分析。用 Python 跑一遍推理,把每层激活值的直方图画出来。你会发现,大部分激活值集中在零附近——这就是压缩的空间。

1.4 激活压缩的常见方法概览

在正式开始讲具体技术之前,我先列一个表格,让你对「工具箱」有个整体印象。后面每一章都会深入展开。

方法 核心思想 典型压缩比 硬件代价
量化 用更少比特表示激活值(如 FP32→INT8) 4× 低(只需量化单元)
稀疏编码 只存储非零激活值及其索引 2×~5× 中(需要索引解码)
剪枝 去除冗余的激活通道或神经元 2×~3× 中(需要重训练)
低秩分解 用低秩矩阵近似激活值张量 1.5×~3× 高(需要矩阵运算)
预测编码 利用相邻激活值的相关性做差分编码 2×~4× 中(需要预测器)

你看,每种方法都有自己的「脾气」。有的压缩比高但硬件代价大,有的实现简单但压缩比有限。选哪种,取决于你的芯片目标——是做极致能效,还是做快速上市。

我曾经踩过一个坑:在一个项目里,我们一股脑用了最高压缩比的方案,结果解码延迟太大,反而拖慢了整体推理速度。后来我学乖了——压缩不是越狠越好,要在压缩比和硬件开销之间找平衡。

1.5 激活压缩的适用场景

不是所有芯片都需要激活压缩。我总结了几类典型场景:

  • 边缘 AI 芯片:SRAM 资源极其有限,能省一点是一点。比如智能摄像头、TWS 耳机。
  • 数据中心推理卡:带宽是命门,压缩激活值能显著提升吞吐量。
  • 自动驾驶域控制器:实时性要求高,减少数据搬运就是减少延迟。
  • 可穿戴设备:功耗是第一位,压缩激活值能省下宝贵的毫瓦。

反过来,如果你的芯片片上存储足够大、带宽足够宽、功耗预算足够宽松——那确实没必要折腾压缩。但说实话,我做了这么多年芯片,这种「三足够」的项目,一个都没遇到过。

1.6 本章小结

激活压缩,说白了就是跟数据较劲。它解决的是芯片设计中「存储墙」和「带宽墙」这两个老大难问题。

我个人认为,未来五年,激活压缩会成为 AI 芯片的标配技术。原因很简单:模型越来越大,芯片面积越来越贵,能效要求越来越高。你不压缩,就只能在成本上吃亏。