光子计算芯片第一次跑矩阵,卡在哪
社区讨论 · 政策

光子计算芯片第一次跑矩阵,卡在哪

黑产克星黑产克星2 小时前2026/10/11 11 浏览

被朋友安利了九维光子那块基于相变材料的智能光子芯片,试试看到底好不好用。他是做光模块的,说这玩意儿跑矩阵乘加不太费电,写完就记住。我手头正好有一批风控特征要做批量打分,矩阵运算量不小,就借来跑了一轮。

结论放前面。如果你的任务是大规模矩阵乘加、数据规整、对功耗敏感,值得花半天跑通。但如果输入是一堆没清洗过的脏数据,先回去清洗,光芯片不替你补这一课。

先把概念说人话。相变材料,就是能在两种状态之间来回变的材料,变一次光的通过性就变一次,断电也能记住,这叫非易失。芯片把这种材料和硅光做在一起,用光强表示数值,整块阵列做矩阵乘法,就是 Crossbar 结构,横竖两排线交叉,每个交叉点存一个权重。我拿到的这块是 256×256 规模,据说架构上支持一万六千多节点、每个节点单独调。

适不适合你,看几条。计算能写成矩阵乘加,比如卷积、全连接、特征打分;输入能归一化到统一范围,不怕丢精度;权重写完不频繁改,因为相变状态改写有成本;你要的是低功耗,不是极致灵活。反过来说,如果你每天要改几十版权重做 A/B,这块板子会让你很难受。

我走的是上位机配置加板上执行的路子,不同批次界面可能不一样,步骤大差不差。

1. 整理输入矩阵。我用 CSV,一行一个样本,一行特征数不能超过阵列一边的长度,超了就得拆。打开上位机,选 导入输入矩阵,选文件,界面回显一个二维表,核对行列数。

2. 归一化。光用强度表示数值,你给它一个 5000 的绝对值它没法表示。把所有数缩到 0 到 1 之间,勾上 归一化,界面会显示缩放后的最小值和最大值。预期是所有值落在区间内,没有溢出警告。

3. 写权重。选 权重配置,导入权重文件,点 写入,进度条走完提示完成。相移器尺寸我看到的资料是小于 30 微米,密度不低。

4. 上电执行。点 运行,输入光进去,探测器读出来。我这边跑一次几十秒,出来一个输出矩阵。

5. 读结果。导出 CSV,跟 CPU 上跑的参考值对一遍。我这边测下来误差可接受,主要来源是归一化时的截断。

容易卡的地方有几个。第一个坑,相变状态不会自己复位。写完的权重是记住的,你重新跑,跑的还是上一版权重,不是新的。我第一次就踩了,跑出来跟上一轮一模一样,查了半小时才发现没擦除。改权重前先点 复位,等状态清干净再写。

第二个坑,归一化范围对不齐。输入按 0 到 1 缩,权重没缩,两边尺度不一致,输出直接饱和,全是一片高值。解决办法是输入和权重用同一套缩放规则,写个小脚本统一处理。

第三个坑,别拿它当规则引擎用。规则引擎改一条规则几秒生效,这块板子改一次权重得走擦除加写入。我之前想过把反欺诈规则直接搬上去,后来发现规则要频繁调,搬上去纯属自找麻烦。它适合的是规则定型之后的大批量打分。

跑通矩阵乘加之后,别停在玩具矩阵上。找一张小图,做一次卷积,看输出的特征图对不对。有团队拿这类芯片做弱小目标检测和图像识别的特征提取,路子是通的。这一步跑通了,再考虑把整层网络往上映射。

1 条回复

?
Ctrl + Enter 快速回复
格物
格物21 分钟前

相变状态不复位这个坑太真实了,我上次也差点以为芯片坏了,复位加擦除这步确实不能省。