资讯动态

170、MLIR的Fault Tolerance(容错)与冗余计算

发布时间:2026/9/14 18:57:38 来源:尧图企业网站定制
MLIR的Fault Tolerance(容错)与冗余计算从一次凌晨三点的崩溃说起去年做AI加速器编译器的时候,遇到一个诡异的bug。芯片在高温环境下跑推理任务,偶尔会出现个别计算单元输出全零——不是每次都复现,但一旦出现,整个推理结果就崩了。当时团队里有人提议“加ECC”,有人建议“做三模冗余”,但问题是我们的硬件资源已经吃紧,每条指令的延迟都卡在纳秒级。后来我翻到MLIR的Dialect设计文档,突然意识到:容错不一定是硬件的事,编译器层面可以做很多“软”的事情。MLIR的多层次IR结构天然适合插入冗余计算、校验逻辑和故障恢复路径。今天这篇笔记,就聊聊我在MLIR里做容错的一些实战经验。冗余计算的两种“姿势”1. 数据级冗余:重复计算 + 比较最朴素的想法:把关键计算做两遍,结果不一致就标记异常。在MLIR里,这可以通过在Linalg或Affine Dialect层面插入“影子计算”实现。// 原始计算:一个简单的矩阵乘 %result = linalg.matmul ins(%A, %B: tensor8x8xf32, tensor8x8xf32) outs(%C: tensor8x8xf32) - tensor8x8xf32 // 插入

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价