想象一条古老的运河运输系统:所有货物都靠卡车在公路上跑,公路越修越宽,卡车越来越多,但总有一堵越不过去的墙——发动机在发热,油在烧尽,道路在拥堵。这就是过去半个世纪电子芯片的处境。而光子加速器给出的方案是:不派卡车送货物了,而是让整条河的水波同时流动。你向水面扔几颗石子,波纹自动交织成图案——这个图案本身就是数学运算的结果。这就是光子 AI 加速器:用透镜、干涉仪和光束,让矩阵乘法在光穿过芯片的一瞬间自动完成。这篇文章会用“运河与波纹”的比喻,带你从头理解光子为什么能算、怎么算、还差什么,以及它正走向哪里。
理解光子加速器,能让你看懂 AI 芯片领域最受关注的突破方向之一,也为评估“后摩尔时代”计算硬件的技术路线提供判断力——这是 AI 从业者做技术选型与前瞻判断的重要视野。
目录
可视化演示
展示MZI干涉仪阵列光子矩阵乘法、光电混合计算架构分工、以及光子与电子计算的多维性能对比。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+_captions.mzi+'
摩尔定律瓶颈:运河上的单车道
想象一条古运河的运输系统:所有货物都靠卡车在单车道公路上跑。过去半个世纪,人类不断把这条公路加宽——晶体管越做越小、越排越密,每隔大约两年,同样面积的芯片就能塞下两倍的晶体管,计算能力随之翻番。这条“公路越修越宽”的规律,就是人们常说的摩尔定律。但卡车总要烧油,跑得越快、载得越重,发动机就越是滚烫。当公路窄到连挖掘机都开不进去的时候,继续加宽的代价,已经超出了它带来的收益。
在芯片世界里,“烧油”就是耗电,“滚烫”就是发热。电子芯片里每一次逻辑翻转,都相当于给一个微小的电容充放电,电荷的流动会不可避免地产生热量。当晶体管缩小到纳米尺度,量子效应又开始捣乱:电子会“漏”过看似关闭的开关,静态功耗也水涨船高。与此同时,算力需求却还在以每年超过十倍的速度膨胀——尤其是 AI 模型的训练与推理,本质上是在不停地做巨型矩阵乘法。于是,芯片厂商撞上了一堵看不见的墙:功耗墙(Power Wall)。
功耗墙背后的定量关系,是芯片设计中著名的动态功耗公式:
所以,工程师们开始换一个思路:与其在单车道公路上和物理定律死磕,不如问一句——能不能让货物搭上整条河流?水波天然并行、互不碰撞、几乎不带热量。把计算从“电子的公路”搬到“光子的河流”,这正是光子加速器的起点。
- P 与 α$P_{\text{dynamic}}$ 是芯片的动态功耗,$\alpha$ 是信号翻转率——数字电路里每个时钟周期只有一部分晶体管真的在“翻面”,α 就是这个比例。这就像车队里真正在换挡加速的车占几成。
- C 是电容$C$ 是晶体管的负载电容,代表每次充放电需要“搬运”多少电荷。电容越大,搬得越累,功耗越高。
- V² 是电压平方项$V^2$ 是驱动电压的平方。电压每降低 10%,这部分功耗降到原来的 81%;但电压太低,晶体管又无法可靠开关——这就是“降压省电”的物理天花板。
- f 是频率$f$ 是时钟频率,单位为赫兹。主频越高,每秒翻转次数越多,功耗直线上升。这也解释了为什么 CPU 主频在 2005 年前后撞上“频率墙”。
光子计算原理:波的自动加法
傍晚的池塘边,你同时向水面扔出三颗石子。波纹一圈圈向外扩散,交汇处有的浪头叠浪头变得更高,有的波峰撞上波谷彼此抹平。水面最终呈现的图案,不是某颗石子单独造成的,而是所有波纹“自动相加”的结果——你什么都没算,图案自己长了出来。光子计算的全部魔法,就藏在这句“自动相加”里。
光的本质是电磁波。两束相干的光叠加时,它们不会像两辆卡车那样碰撞减速,而是彼此穿过,并在空间某处形成稳定的干涉图案。这个图案的明暗分布,完全由两束光的相位差决定:相位相同,亮度增强;相位相反,亮度抵消。换句话说,干涉在物理世界里直接执行了“加法”,而且是波前上每一个点同时进行的加法。这就是光子计算“并行”的第一个来源——不需要 CPU 一条指令一条指令地循环,光自己就把数值加好了。
定量地看,两束光叠加后的光强服从干涉公式:
河流的波纹不需要一辆辆卡车排队——它们同时扩散、同时叠加。输入光越多、相位控制越精细,干涉图案携带的信息就越丰富。这正是光子芯片能把大量乘法-加法运算“一步到位”的物理根基。
- 两束光的光强$I_1$ 和 $I_2$ 分别是两束光各自的光强(正比于振幅平方)。在光计算里,它们可以是两个待相加的数值,比如矩阵乘法中的两个输入元素。
- 干涉项$2\sqrt{I_1 I_2}\cos(\Delta\phi)$ 是两束光“合伙”产生的额外贡献。它的大小取决于两束光的相对强弱,这相当于对两个输入做了加权——权重由振幅决定。
- 相位差$\Delta\phi$ 是两束光到达同一点时的相位差。相位差为 0 时 $\cos=1$,干涉项最大,输出“相长”;相位差为 π 时 $\cos=-1$,干涉项为负,输出“相消”。相位,正是光计算里写入权重的方式。
- 极端情形当 $I_1 = I_2$ 时,相长干涉让 $I = 4I_1$,相消干涉让 $I = 0$。“两道光”既能变成“四道光”,也能变成“黑暗”,全看相位。
矩阵乘法映射:透镜与印花模板
你手里有一张写满密密麻麻字迹的透明胶片,把它放在凸透镜前方,用一束平行光照过去。透镜另一侧的屏幕上出现的,并不是放大的字迹,而是一圈圈明暗相间的同心圆环——胶片上所有信息被神奇地重新排列成了“频率的语言”。整个变换在光穿过镜片的瞬间完成,不需要任何“计算步骤”。这正是光学傅里叶变换:透镜是天然的傅里叶变换计算器。
矩阵乘法(尤其是矩阵×向量)也能映射成这种“光程变换”。设输入向量 x 有 N 个元素,把它编码成 N 束光的振幅或相位;再把矩阵 U 编码进一块可编程的“掩膜”(衍射光栅或干涉仪阵列)。当光束穿过掩膜,每一路输出都自动成为所有输入按权重叠加的结果——这正是矩阵乘法的定义。数学上,这一过程用二维傅里叶变换描述:
除了连续傅里叶变换,实际的光子芯片更多用离散的酉矩阵来表达任意线性变换。任何 N×N 酉矩阵都能分解成一组 2×2 旋转单元(即马赫-曾德尔干涉仪)的级联:
就像印花模板一次印出整匹布的图案:矩阵 U 被“刻”进干涉仪的相位参数里,输入光一照,输出端就得到 $y = Ux$——全部乘法和加法在光穿过芯片的几十皮秒内同时完成。
- 目标矩阵$U$ 是想要实现的 N×N 酉矩阵——在神经网络里,它就是一个全连接层或卷积层的权重矩阵。
- MZI 单元$V_k(\theta_k, \phi_k)$ 是第 k 个干涉仪对应的 2×2 分块旋转矩阵,由两个相移参数 $(\theta_k, \phi_k)$ 决定。
- 级联$D$ 是对角矩阵,乘积 $\prod$ 表示一个方向上的所有 MZI 依次串联。调节每个 $\theta_k, \phi_k$,就能“编程”出任意的 $U$。
光子芯片架构:把池塘搬上芯片
要把“波纹池塘”变成产品,工程师得先把它缩小到指甲盖大小。实验室里的光学平台可以摆满桌子,但数据中心需要的是能插进服务器机柜的芯片。于是,硅光工艺登场:在硅晶圆上蚀刻出纳米级的光波导、调制器和探测器,等于在指甲盖上修一座微型水利工程——河道、水闸、水车一应俱全。
这座微型水利工程最重要的“水闸”是马赫-曾德尔干涉仪(MZI)。它把一束光分成两路,分别在两条臂上施加相移,再合并输出。调节两个相移器的角度,这个单元就能对光信号执行任意的 2×2 线性变换。把几十上百个 MZI 像棋盘一样排成网格,再按上一节所说的酉矩阵分解方法配置每个单元的角度,整块网格就实现了一个大矩阵。数据以光的形态流过网格,输出端自然得到乘积:
除了 MZI,微环谐振器也在芯片上扮演重要角色:它可以做高速调制器,也能做波分复用器,让多种波长的光在同一根波导里“各走各的车道”,互不干扰。这套组件拼起来,就是光学神经网络(Optical Neural Network, ONN)——输入光经过多层干涉网格和调制,像电子神经网络一样完成推理。波导把微型河流引向每一个水闸,一个水闸合并两路波,下一段河道再汇入新的波——整个芯片就是一张浑然一体的光学计算网格。
- 输入向量$x = [x_1, x_2, \dots, x_N]^T$,每个元素调制到一路光的振幅或相位上。N 路光同时注入芯片。
- 酉矩阵$U$ 由 MZI 网格实现,它是可编程的。训练好的神经网络权重经过分解,转成每个 MZI 的相位参数 $(\theta_k, \phi_k)$。
- 输出向量$y = [y_1, \dots, y_N]^T$,由探测器阵列读出。$y_j = \sum_i U_{ji} x_i$ 正是矩阵乘法的定义。
技术瓶颈挑战:装货卸货的代价
光在河床里跑得再快,货物也得上岸下岸。现实中的光子芯片,数据并不是“生来就在水里”:CPU 算好的数据先得从内存搬出来,经过数模转换(DAC)变成模拟电压,驱动激光器产生光,再经调制器把数据“印”到光束上;计算完成后,探测器把光强变回电流,再经模数转换(ADC)变成数字信号送回电子世界。这两次“装货卸货”,恰恰是当前最大的成本所在。
更麻烦的是,光量子之间几乎“不聊天”——两束光相遇只是叠加然后穿过,不会像电子管那样形成非线性开关。而神经网络偏偏离不开非线性激活函数(ReLU、Sigmoid)。目前的主流方案是把光层和电子层混着用:光专门做线性矩阵乘法,非线性激活、残差连接、归一化这些操作仍然送回电域完成。每一次跨域,都要付出转换的代价。
把整个数据通路上的能耗摊开来,光电混合芯片的总能耗约为:
就像运河再高效,若港口装卸排队,总时间就被港口卡住。这也是为什么光子芯片目前的最佳舞台是“大批量矩阵运算”:当矩阵维度 N 上了千上万,光路里的计算几乎免费,港口成本被摊薄到可以忽略;而小规模计算,光并没有什么优势——这是理解光子计算边界的关键。
- 数模转换$E_{\text{DAC}}$ 是把数字信号变成模拟电信号的开销。数据带宽越高,DAC 越耗电。
- 激光源$E_{\text{laser}}$ 是产生相干光的能耗。激光器要稳定、低噪声,本身就不能断电。
- 调制器$E_{\text{mod}}$ 是把数据调制到光载波上的能耗。高速调制器需要较大的驱动电压。
- 探测器与 ADC$E_{\text{detect}}$ 是光电二极管把光转回电流的能耗,$E_{\text{ADC}}$ 则把模拟电流量化成数字。ADC 在高精度高带宽下尤其昂贵。
产业现状路线:河运与公路混搭
聪明的水运公司从来不说“我要用船完全取代卡车”,而是让两者分工:大宗长途走船,精细短途走卡车。光子 AI 加速器走到今天的产业共识,也惊人地相似——没有人真的想用纯光芯片取代整个 GPU,而是把光插进现有计算体系最痛的地方:矩阵乘法。这就是“光电混合架构”。
目前走在最前面的是几家硅光初创公司。Lightmatter 发布了可编程光子引擎 Envise,主打数据中心推理加速;Lightelligence 则把光学引擎和先进封装结合,尝试做成可插拔的光子协处理器。它们的共同技术底座,都是前面讲的 MZI 干涉仪阵列:把训练好的权重烧录成相位配置,输入特征图以光的形式流过网格,瞬间完成全连接层和卷积运算。与此同时,波分复用技术让多路数据在同一根波导中并行,进一步放大吞吐。
光电混合方案的端到端延迟可以写成三段时间之和:
从应用场景看,最先落地的会是数据中心里“矩阵维度特别大、批量也很稳定”的推理负载,比如大语言模型的特征投影和大规模推荐系统。而在自动驾驶、边缘计算这些对延迟极度敏感的场景,光子做矩阵预处理的低延迟优势也极具吸引力。河运和公路的混搭不是妥协,而是务实:让光做它最擅长的大规模并行乘法,让电子做它擅长的控制、存储与非线性变换。这条双轨之路,正从实验室缓缓驶向真实的数据中心机房。
- 电转光延迟$t_{\text{E/O}}$ 是电子数据变成光信号(DAC + 激光器 + 调制器)所需的时间。这部分目前仍以纳秒计。
- 光传播延迟$t_{\text{prop}} = L / v_g$,其中 $L$ 是光在波导里走过的总长度,$v_g$ 是光的群速度。光速极快,芯片尺度下这一项通常小于几十皮秒。
- 光转电延迟$t_{\text{O/E}}$ 是探测器把光转回电流、再由 ADC 量化成数字的时间。它和 $t_{\text{E/O}}$ 一起构成跨域开销的大头。
AI 应用场景
数据中心大模型推理加速
阶段:部署与推理
解决的问题:Transformer 模型推理中,矩阵乘法(GEMM)占整体计算量的 70% 以上,GPU 的功耗和散热成本越来越高,推理延迟也难以压下去。光子加速器把线性层的矩阵乘法卸载到可编程干涉仪网格上,用光的干涉一次完成计算,只在非线性激活和存储环节回到电子芯片,从而把推理能耗降低一个数量级。
具体案例:Lightmatter 的 Envise 光子引擎与现有 GPU 服务器协同部署,把 GPT 级别模型的全连接层计算映射到 MZI 网格;在同样的批量推理任务上,每瓦性能比纯 GPU 方案提升数倍,为云厂商降低运营成本。
自动驾驶低延迟感知
阶段:边缘感知与实时推理
解决的问题:车载芯片对延迟和功耗极其敏感,摄像头图像进入神经网络后,第一层卷积本质就是矩阵运算。若用光把图像的空间域变换和矩阵投影瞬间完成,可省下宝贵的毫秒级反应时间,同时降低车载散热负担。
具体案例:研究团队在原型系统中用 2×2 MZI 网格阵列对 512×512 图像做快速傅里叶变换预处理,光路延迟小于 1 纳秒,比同尺寸数字信号处理器快两个数量级,且无需高功耗 GPU。
光神经网络科研原型
阶段:算法研发与验证
解决的问题:研究者想验证“光训练”或“光推理”的新算法,但传统光学实验平台笨重且难以编程。可编程 MZI 网格把光路变成“可烧录”的算力,让团队在几天内迭代一个光学神经网络原型,而不是花几个月搭透镜系统。
具体案例:MIT 团队演示了全光衍射神经网络(DNN),用 3D 打印的衍射层对手写数字图像分类,整个推理过程没有电子计算参与;后续版本进一步加入可编程相位层,提升了分类准确率。
Python 演示
import numpy as np def mzi_matrix(theta, phi): """单个马赫-曾德尔干涉仪(MZI)的2x2传输矩阵""" c = np.cos(theta / 2) s = np.sin(theta / 2) return np.array([ [c * np.exp(1j * phi), -s], [s, c] ]) def build_unitary(dim, seed=0): """用MZI级联搭建dim阶酉矩阵,模拟光子芯片的可编程光路""" rng = np.random.default_rng(seed) U = np.eye(dim, dtype=complex) for j in range(dim): for k in range(j + 1, dim): theta = rng.uniform(0, 2 * np.pi) phi = rng.uniform(0, 2 * np.pi) M = mzi_matrix(theta, phi) T = np.eye(dim, dtype=complex) T[j, j], T[j, k] = M[0, 0], M[0, 1] T[k, j], T[k, k] = M[1, 0], M[1, 1] U = T @ U return U def photonic_matmul(inputs, matrix): """输入光束经过酉矩阵光网格,一次完成矩阵向量乘""" return matrix @ inputs def main(): dim = 4 U = build_unitary(dim, seed=42) x = np.array([1.0, 0.5, -0.3, 2.0]) y = photonic_matmul(x, U) print("MZI grid unitary U:") print(np.round(U, 3)) print("Input vector x:", x) print("Photonic output y:", np.round(y, 3)) err = np.linalg.norm(U.conj().T @ U - np.eye(dim)) print("Unitarity check |U^H U - I|:", round(err, 8)) if __name__ == "__main__": main()
def mzi_matrix(theta, phi):模拟单个马赫-曾德尔干涉仪的 2×2 传输矩阵,相位参数 θ、φ 就像水闸的开度。U = np.eye(dim, dtype=complex)从单位矩阵开始,逐级串入干涉仪单元,搭建整个光网格。T[j, j], T[j, k] = M[0, 0], M[0, 1]把 2×2 单元嵌入大矩阵的对应行列,相当于将单个水闸接入整条河道。U = T @ U矩阵乘法代表“级联”:光依次流过每个干涉仪,所有变换被累积起来。return matrix @ inputs输入向量乘以酉矩阵,等价于光穿过网格后每个输出端口收到的加权叠加。err = np.linalg.norm(U.conj().T @ U - np.eye(dim))校验酉性(数值接近 0),物理上对应“光在理想无损耗网格中能量守恒”。
常见误区
误区我听说光速是每秒 30 万公里,电子在芯片里的速度肯定慢多了。光子加速器不就是靠“光跑得快”才快的吗?
正解其实电信号在铜导线/硅波导中的传播速度是光速的 0.5~0.9 倍,两者同属一个数量级。光子加速器的真正优势是“并行”与“低能耗”:光的干涉天然对整片波前同时做加权求和,一次光路等于上亿次乘法-累加运算,而且光几乎不产热。速度不是关键,并行度才是。
为何常见:因为“光速快”是最容易记住的标签,人们天然用标签代替机制,忽略了光的波动性和干涉才是计算的本体。
误区既然计算都用光了,那整个芯片就不再需要电了,功耗应该为零吧?
正解恰恰相反,激光器要电来发光,调制器要电来加载数据,探测器要把光变回电流,DAC/ADC 都要电。当前的数据通路是“电→光→电”,两次转换的开销甚至可能超过光计算省下的能耗。光子芯片“少耗电”是指在矩阵规模足够大时,光路内部的加乘近乎免费,而不是整颗芯片不用电。
为何常见:人们把“计算用光完成”误解成“整个系统用光完成”,忽略了光也需要被产生和被读出。
误区既然 Lightmatter 都发布产品了,那光子芯片应该马上能替代 GPU 训练 GPT 了吧?
正解目前的光子加速器仍以推理为主、规模有限(几十到几百个 MZI 单元),且主要做线性矩阵运算,非线性激活和数据存储仍依赖电子芯片。要追平 GPU 的生态和规模,还需要很多年在集成度、良率和软件栈上的积累。商业化落地是“渐进式插入”而非“替代式颠覆”。
为何常见:资本新闻和研究论文倾向于展示最亮眼的指标,容易让人忽略工程化距离。
误区光越强,计算应该越猛吧?拿个大功率激光器对着掩膜一照,不就算完了吗?
正解光子计算依赖的是相干光的“相位干涉”:两束光必须频率一致、相位关系稳定,才能形成有用的干涉图案。强激光只是更多能量,没有相位信息就只是“加热”,不会产生矩阵乘法结果。控制相位、保持相干性,才是光子计算的核心技术难点。
为何常见:日常经验里的“光=亮度”让人误解光计算是在比功率,忽略了光作为波的相位维度。
面试题
Q1. 光子加速器相比电子芯片最核心的计算优势是?
- A.光速比电信号快很多倍
- B.光的干涉天然并行完成计算← 正确答案
- C.激光器几乎不消耗能量
- D.光芯片完全不需要供电
答案:B。光在介质中速度和电信号同数量级,真正的优势是干涉天然对整片波前做并行加权求和,一次光路等于大量 MAC 运算。激光器、调制器、探测器都要耗电,光芯片也需要供电,所以 A、C、D 均错。
Q2. 马赫-曾德尔干涉仪(MZI)在光子芯片中的作用是?
- A.充当可调 2×2 光路单元← 正确答案
- B.负责给芯片散热降温
- C.放大经过的光信号强度
- D.把电子信号转换为光子
答案:A。MZI 把一束光分两路、加相移、再合并,通过两个相位参数可实现任意 2×2 线性变换,是可编程光网格的基本积木。它不散热、不放大;电转光靠激光器与调制器完成。
Q3. 关于透镜在光学傅里叶变换中的作用,下列说法正确的是?
- A.把输入光场变换为频谱← 正确答案
- B.在焦平面形成频域分布← 正确答案
- C.将光子转换为电子信号
- D.增大光束携带的能量
答案:AB。透镜焦平面处的光场正是输入光场的二维傅里叶变换,输入的空间频率映射为焦平面上的位置分布,所以 A、B 正确。透镜不进行光电转换,也不增加能量,C、D 错误。
Q4. 电子芯片遭遇“功耗墙”的直接原因是?
- A.晶体管小到受量子效应干扰
- B.动态功耗正比于电压平方
- C.芯片尺寸缩小散热更困难
- D.以上多个原因共同导致← 正确答案
答案:D。功耗墙是多重因素叠加的结果:尺寸缩小带来量子漏电,动态功耗与 V²、f 成正比,散热面积又跟不上功耗密度。单说哪一条都不完整,四个选项合起来才是全貌。
Q5. 为什么不同波长的光可以在同一根波导中并行传输?
- A.因为光纤会按颜色自动分路
- B.因为光波之间互不干扰可叠加← 正确答案
- C.因为波长不同速度就不同
- D.因为波导只允许单波长通过
答案:B。不同波长的光在同一介质中传播时互不干扰、可以线性叠加,这个性质叫波分复用(WDM),让一根波导里能并行跑多条“光通道”。它不是按颜色自动分路,也不是靠速度差异,更不是只允许单波长。
Q6. 光神经网络实现“非线性激活”困难的根本原因是?
- A.光子之间几乎不发生直接相互作用← 正确答案
- B.激光器的输出本身是线性的
- C.探测器无法感知光强之外的信息
- D.波分复用会抵消非线性效应
答案:A。电子管/晶体管能靠电荷相互作用做出“开关”,而光子是玻色子,在线性介质里两束光相遇只会叠加穿过,不会像电子那样互相“推挤”。所以 ReLU 这类非线性只能靠光电混合或特殊非线性材料实现。B、C、D 都不是根本原因。
Q7. 下面哪些属于光子加速器当前的主要瓶颈?
- A.电光与光电转换开销较大← 正确答案
- B.片上的非线性激活实现困难← 正确答案
- C.干涉仪阵列的集成度有限← 正确答案
- D.光在波导中的传播速度慢
答案:ABC。瓶颈来自“港口”(电光/光电转换)和“船队规模”(集成度),以及光的线性本质导致的非线性难题。D 明显错误——光在波导中虽比真空慢,但仍极接近光速,瓶颈从来不在传播速度。
Q8. 关于光子-电子混合架构,下列说法正确的是?
- A.线性矩阵乘法交给光完成← 正确答案
- B.非线性激活交给电子完成← 正确答案
- C.完全不需要光电信号转换
- D.可降低端到端延迟与能耗← 正确答案
答案:ABD。混合架构的核心分工是“光做线性、电做非线性与控制”,数据必须经过电光/光电两次转换,所以 C 错误。只要矩阵规模足够大,转换成本被摊薄,整体延迟与能耗就能下降,A、B、D 正确。
Q9. 光子矩阵乘法中,权重矩阵 U 是如何被“写入”芯片的?
- A.烧录成每个 MZI 的相位参数← 正确答案
- B.用激光把数据刻在芯片表面
- C.直接修改芯片的晶体管电路
- D.通过更换不同的透镜来实现
答案:A。U 先做酉矩阵分解,得到每个 MZI 所需的相移角(θ, φ),再通过热光或电光相移器把它们设置成固定值。这等价于把权重“烧录”成光路配置,而不是刻字、改电路或换透镜。
Q10. 目前光子加速器最有优势的计算场景是?
- A.大规模的矩阵乘法运算← 正确答案
- B.单精度的标量加减法
- C.小规模的布尔逻辑运算
- D.长时间的数据存储工作
答案:A。光计算的固定开销(电光转换)较高,矩阵规模越大,光路内的并行收益越能摊薄开销;小规模标量、布尔逻辑、数据存储都是电子芯片的主场。