关键词:定制指令、RISC-V、E-Graph、反合一、AI加速、DSA
本文不仅介绍了一个强大的开源工具,更重要的是,它展示了一种思想上的转变:在软硬件协同设计的时代,最宝贵的资源不是晶体管,而是设计模式和知识的可复用性。具体而言,对AI基础设施和芯片设计社区的启示如下:
- 为算法演进而生:在后摩尔时代,算法演进速度快于硬件迭代。因此,需要自动化工具来连接“快速变化的算法”与“相对固化的硬件”,使芯片设计能够灵活适应,而非刻舟求剑。
- 超越“手工特征工程”:编译器与自动化指令生成框架将能够自动分析计算图,提炼出“原子操作”,并动态生成相应的硬件加速单元。
- 构建开放的“指令生态”:RISC-V开放了指令集架构。未来,不同领域可以从各自的软件生态中“生长”出最优的、可共享的指令集,从而形成一个繁荣的定制指令生态系统。

引言
在AI算法快速迭代、算力需求持续增长的今天,领域特定架构和专用芯片已成为提升性能的关键。假设设计了一款专为Transformer模型加速的芯片,其中有一条定制指令能高效处理Softmax函数,其性能是通用指令的10倍。
这看似是一个完美的解决方案。然而,现实往往更为复杂:当另一个团队加速点云处理任务时,其软件中频繁出现一个语义等价但语法形式为(a+b)/(c+d)的计算模式,而现有的Softmax定制指令却无法加速它。
这就引出了一个核心问题:我们设计的定制指令,究竟是“一次性”的专属优化,还是可以灵活组合、广泛复用的“积木”单元?

在RISC-V生态蓬勃发展的当下,设计可扩展的定制指令已变得前所未有的便捷。但如何自动化地从应用中发掘那些既常用、又可复用、还能充分利用数据级并行的指令模式,仍然是一个巨大的挑战。现有方法往往局限于语法层面的匹配,或忽略语义等价性,导致生成的指令专用性强、复用率低。

北京大学团队在ASPLOS‘26上发表的论文《Finding Reusable Instructions via E-Graph Anti-Unification》提出了一种名为ISAMORE的创新框架。该工作的核心洞察是:真正的可复用性隐藏在程序的语义等价性中,而非表面的语法相似性。

为此,研究者引入了一种名为E-Graph反合一的强大技术。该技术能够像寻找代数公理一样,自动从不同代码片段中提炼出它们背后共同的“计算模式”。
反合一是一种从两个不同表达式中提取其共同结构的技术,将差异部分抽象为变量。例如,
a×2+b×2和(1+i)×2经过反合一后,可以得到(?x+?y)×2。这个结果概括了“两个数相加再乘以2”的公共模式,忽略了具体的操作数。借此,可以在不同代码中发现语义相同的可重用指令。

实验结果表明,与传统的语法合并方法相比,ISAMORE发现的每条指令平均复用次数从不足9次提升至93次,在实现高达2.69倍性能提升的同时,还能节省超过90%的硬件面积。
本文将深入解读ISAMORE,探讨其如何利用来自形式化方法领域的E-Graph和反合一技术,为AI芯片设计开辟一条自动化、智能化且高复用度的新路径。
关键问题
问题一:启发式剪枝是否可能漏掉结构不同但语义等价的高价值模式?
在实际编译优化中,实现相同计算功能的代码段可能在结构上差异显著,例如循环与展开、变量命名或常数折叠方式不同。这些结构迥异的模式在基于语法哈希的相似度度量(如Jaccard距离)下可能得分很低,从而被预设的剪枝阈值过滤掉。论文采用启发式方法,仅对相似度超过特定阈值的 e-class 对进行反合一,并辅以边界或 kd-tree 策略进行模式采样。这引发了一个核心关切:系统是否会因此遗漏那些“语义等价但结构不同”的高价值模式?如果反合一过程不具备完备性,那么其所宣称的“语义感知”优势,是否在本质上退化为另一种语法近似?
作者明确指出,启发式剪枝是出于工程可行性的必要妥协。若对所有 e-class 对执行完备的反合一,候选模式数量将爆炸性增长至63.3万以上,导致内存占用超过30GB,算法无法实际运行。启用启发式剪枝后,所有基准测试均能在145秒内完成,内存占用控制在799MB以内。这实质上是一种以牺牲理论完备性来换取算法可扩展性的权衡。
关于是否会遗漏重要模式,实验提供了间接证据:在 QProd、Deriche 等基准上,采用更多样化采样的 KDSample 策略其性能优于默认的边界策略。这表明边界策略确实可能过滤掉某些有益模式。然而,即便如此,ISAMORE 的整体性能加速比仍达到1.12倍至2.69倍,优于现有基线方法。
结论:启发式剪枝确实存在遗漏高价值模式的风险,但这是性能与完备性之间必要的工程权衡。论文并未追求完美的语义感知,而是在可接受的范围内实现了显著的性能提升。
问题二:贪婪剪枝是否与“最大化重用”目标冲突?
模式向量化的核心挑战在于从标量程序中提取数据级并行(DLP)。论文采用贪心策略,优先选择DLP收益高的向量构造器,并通过 compress 操作将选定的向量化方案固化回 e-graph,同时主动丢弃其他可能的向量化组合。这种贪婪剪枝虽然消除了 Get→Vec→Get 循环、控制了 e-graph 规模,但也提前锁定了单一的向量化策略。不同的种子包组合可能对应硬件面积、延迟和重用频率迥异的向量化指令。以2DConv为例,LLVM未进行 if-conversion 导致边界检查阻碍了向量化,但若采用跨基本块打包等不同策略,或许仍能提取有效模式。这种贪婪剪枝是否与“最大化重用机会”的根本目标存在内在冲突?是否可能导致某些应用无法达到理论上更优的速度-面积权衡?
作者承认,贪心剪枝确实可能错过部分向量化机会。然而,此举是不得已而为之:若不进行剪枝,混合标量与向量的 e-graph 会产生大量 Get→Vec→Get 循环,导致图规模指数级膨胀,使得后续的反合一与提取过程无法进行。这是一种“两害相权取其轻”的策略——牺牲一部分潜在的向量化方案,以确保整个自动化流程能够顺利执行。
那么,这种牺牲的实际影响有多大?实验结果表明,向量化(Vector)模式在10个基准测试中的8个上仍优于默认模式,最高可带来1.68倍的额外加速;仅在2DConv上,由于前述LLVM的限制,向量化未能带来收益。这说明贪心剪枝并未系统性破坏重用性,在大多数情况下仍能取得良好效果。
结论:贪婪剪枝与最大化重用目标存在理论上的冲突,但实验证明这是保证算法可行性的必要工程妥协,且在绝大多数实际场景中效果显著。
一、指令定制:从“凭经验”到“自动化”的演进
在深入技术细节之前,有必要厘清问题的本质。
1.1 为什么需要定制指令?
通用处理器(CPU)的优势在于其灵活性,能够处理多样化的任务。然而,这种“面面俱到”的设计也带来了功耗和面积上的高昂代价。定制指令(Custom Instruction)旨在解决这一矛盾,它通过在通用处理器基础上,针对特定应用领域(如数字信号处理、AI推理)添加专用的硬件加速单元。当软件执行到这些定制指令时,硬件能够以极高的能效完成复杂的复合操作(例如点积运算、S盒替换)。
RISC-V 指令集架构的兴起,极大地降低了指令集定制的门槛。 其开放的生态允许开发者根据自身需求自由扩展指令集,而无需受制于单一供应商。诸如 Rocket Chip 等开源处理器项目提供的 RoCC(Rocket Custom Coprocessor)接口,使得集成定制加速器变得如同插拔外设一样简便。
1.2 现有自动化方法的“阿喀琉斯之踵”
然而,核心挑战在于:给定一组目标应用程序,我们究竟应该定制哪些指令?
学术界已提出多种自动化指令生成工具,但它们普遍存在一个关键缺陷:生成的指令复用性低。
- 细粒度方法:枚举程序基本块内的微小子图模式。这类方法视野局限,容易错过跨基本块或更复杂的优化机会。
- 粗粒度方法:以 NOVIA 为代表,通过语法合并来生成指令。这类方法寻找程序中完全相同的代码片段进行合并。
问题的根源在于,语法上的相似性并不等同于语义上的等价性;反之,语义等价的代码在形式上可能千差万别。

图1:传统语法合并(左)与 ISAMORE 语义感知方法(右)的对比。传统方法生成了一个臃肿、包含多路选择器(MUX)且难以复用的指令,而 ISAMORE 通过识别语义等价模式 (x+y)*z,提炼出了一个简洁、可高度复用的加法-乘法组合指令。该图直观展示了两种方法在指令生成上的本质差异。
图1清晰地揭示了这一问题:
* 传统方法 仅能看到 a*2 + b*2 和 (1+i)<<1 这两个语法结构不同的表达式。强行合并它们会产生一个包含4个操作和3个多路选择器的臃肿指令,该指令因过于特殊化而几乎无法在其他代码位置复用。
* ISAMORE 方法 则能识别出这两个表达式在代数语义上均等价于 (x+y)*z,从而提炼出一个简洁的“加法后接乘法”的通用计算模式。这个模式可以被程序中众多不同的计算点所复用。
简而言之,传统方法寻找的是“长相相同的双胞胎”,而 ISAMORE 寻找的是“共享同一家族特征的脸谱”。
1.3 实验数据:复用性带来的巨大收益
为了定量评估低复用性问题的严重性,作者对三个真实世界的开源代码库进行了分析,结果颇具启示性。
- NOVIA(语法合并):每条指令平均仅被复用 3.2 次。
- ISAMORE(语义感知):每条指令平均被复用 6.6 次(基本模式)至 93 次(如 CImg 图像库)。
这种高复用性直接转化为性能和面积的双重优势:以 CImg 库为例,ISAMORE 仅用 975 µm² 的面积即实现了 1.18 倍的性能加速;而 NOVIA 使用了约 10 倍大的面积(约 10263 µm²),却仅换来 1.01 倍的微弱加速。这凸显了“一次性”指令的巨大代价。
二、核心利器:E-Graph 反合一
ISAMORE 的核心在于巧妙地结合了两个分别来自程序语言理论和符号计算领域的概念:E-Graph 与反合一(Anti-unification)。
2.1 什么是 E-Graph?——“等价关系”的紧凑表示
E-Graph 是一种能够紧凑表示大量等价表达式的数据结构。其基本组成包括:
* E 类(E-class):代表一组语义等价的表达式节点,通常用一个虚线框表示。
* E 节点(E-node):代表一个具体的函数应用,其子节点指向其他 E 类。

图 3:(a) 初始 E-Graph,包含 a*2 + b*2 和 (1+i)*1 等表达式。(b) 应用分配律等重写规则后,E-Graph 达到饱和,揭示了新的等价关系(如 (a+b)*2)。(c) 对饱和后的 E-Graph 进行反合一,提炼出公共模式 (?x + ?y) * ?z。
图 3a 展示了一个初始 E-Graph。关键在于,当通过数学法则(如分配律)得知 (a+b)*2 与 a*2+b*2 等价时,可以将它们所在的 E 类合并。这个过程称为等式饱和。
可以这样理解:E-Graph 如同一个超级智能的编译器中间表示,它不仅记录原始表达式,还能通过数学公理自动推导出所有等价的表达形式。
2.2 什么是反合一?——从“特殊性”中提炼“一般性”
合一旨在寻找使两个表达式相等的共同实例(例如,通过替换使 f(x, a) 和 f(b, y) 相等)。
反合一则相反:给定两个表达式,目标是找到其最一般化的模式,该模式通过替换其中的模式变量(“洞”)可以特化为原始表达式。
例如:
* 表达式 1: (a + b) * 2
* 表达式 2: (1 + i) * 2
* 反合一结果: (?x + ?y) * 2。其中 ?x 和 ?y 是模式变量,可分别替换为 (a, b) 和 (1, i)。
这正是 ISAMORE 寻找可复用模式的基石。

图 3:(a) 初始 E-Graph。(b) 应用重写规则后的饱和 E-Graph。(c) 对饱和 E-Graph 进行反合一,提炼出公共模式 (?x + ?y) * ?z。
在图 3c 中,对 (a+b)*2 和 (1+i)*1 进行反合一,得到 (?x + ?y) * ?z。此模式更为通用,它将乘数也泛化为变量 ?z,这意味着它能匹配任何形式的乘加组合,复用潜力巨大。
2.3 直接应用的挑战
将 E-Graph 反合一直接应用于指令识别面临三大核心挑战:
1. 控制流表示:如何将带循环和分支的真实程序编码进 E-Graph?
2. 可扩展性:E-Graph 和反合一算法均存在指数级复杂度风险。对于一个包含 2000 个 E 类的真实程序,可能的 E 类对数量达百万级,逐对进行结构遍历代价高昂。相关研究指出,经典算法在超过 150 个 E 类时即可能因内存溢出(30GB 限制)而失效。
3. 目标错位:反合一通常追求“最简”模式,但这未必等同于硬件性能最优。一个较大的模式可能带来显著的加速收益,尽管其形式不够简洁。
ISAMORE 的创新很大程度上正是为了应对这三个挑战。
三、ISAMORE 框架:从理论到工程实现
ISAMORE 的总体流程如图 4 所示,其核心是可复用指令识别方法论。

图 4:ISAMORE 框架流程。从领域应用(LLVM IR)出发,通过结构化 DSL 转换为 E-Graph,随后在 RII 核心流程中通过相位迭代、智能反合一、模式向量化和硬件感知选择,最终生成优化的定制指令及硬件实现。
3.1 挑战一:如何表示带控制流的程序?——结构化 DSL
为解决控制流问题,ISAMORE 设计了一套结构化的 DSL。

图 5:ISAMORE 结构化 DSL 的语法定义。其关键引入了 If、Loop 等控制流操作,以及 Vec、App 等向量化与模式应用操作,使 E-Graph 能够全面表达程序语义。
该 DSL 不仅包含 Add、Mul 等算术操作,更将 Loop 和 If 作为一等公民引入:
* If(e_in, e_then, e_else):将条件分支建模为一个操作,e_in 包含条件变量与上下文,e_then 和 e_else 为两个分支的表达式。
* Loop(e_in, e_body):将循环建模为一个操作,e_in 为循环变量初始值,e_body 为循环体,返回一个包含循环条件与更新后变量的元组。
这种设计将控制流“操作化”,使其能够像数据流一样被编码进 E-Graph。 图 6 展示了如何使用该 DSL 表示求和平方函数 ∑i² 并将其转换为 E-Graph。

图 6:(a) 平方和函数的 DSL 表示,其中 Loop 操作清晰表达了循环语义。(b) 对应的 E-Graph 表示。注意,重复的 Arg(0,0) 和 Lit(1) 等节点被合并至同一 E 类,体现了 E-Graph 的紧凑性。
3.2 挑战二:如何应对指数爆炸?——相位迭代与智能反合一
这是 ISAMORE 最核心的工程创新之一。
4. 核心算法:可扩展的规则迭代识别(RII)
为应对传统基于 E-Graph 与反合一(AU)方法面临的扩展性挑战,ISAMORE 提出了规则迭代识别(Rule Iterative Identification, RII)技术。RII 通过分阶段调度、智能反合一与硬件感知选择,系统性地解决了 E-Graph 规模爆炸、反合一组合爆炸以及性能-开销权衡三大核心问题。
4.1 挑战一:如何控制 E-Graph 规模?—— 分阶段规则调度
ISAMORE 摒弃了“一次性”饱和应用所有重写规则的天真策略,转而采用一种分阶段、有调度的迭代过程,如图 7 所示。

图 7:RII 核心算法流程。该流程通过调度器(Scheduler)分阶段控制规则集的应用,逐步对 E-Graph 进行等式饱和(eqSat),并在每个阶段集成智能反合一与模式选择,最终累积生成帕累托最优解集。
该流程的核心在于分阶段规则调度:
* 早期阶段:仅应用“饱和型(sat)”规则,如结合律、交换律。这类规则不会引入新的等价类(E-Class),但能充分暴露程序中的等价关系,为后续深度模式识别奠定基础。
* 后期阶段:有节制地应用“非饱和型(nonsat)”规则。调度器每次仅选择少量规则,并严格限制其应用次数(例如,每个规则仅应用两次),从而精确控制 E-Graph 的增长规模。
这种策略如同“剥洋葱”,逐层挖掘语义信息,有效避免了 E-Graph 规模的瞬间爆炸,确保了算法在处理大规模程序时的可管理性。
4.2 挑战二:如何应对反合一组合爆炸?—— 智能反合一(Smart AU)
针对反合一过程固有的指数级搜索空间问题,ISAMORE 引入了两项关键的启发式策略:基于相似度的 E 类配对与启发式模式采样。

图 8:(a) 结构哈希与采样特征的数学定义。(b) 示例:E 类 ⑨ 和 ⑩ 因结构相似被配对;对于此配对,边界采样策略仅保留最具“时间节省”和“面积节省”潜力的两个模式,极大缩减了搜索空间。
- 基于相似度的 E 类配对:并非盲目遍历所有 E 类对。
- 首先,利用类型系统过滤掉结果类型不匹配的 E 类对。
- 其次,引入结构哈希(Structural Hashing):为每个 E 类计算一个基于其内部节点结构的 64 位“指纹”。仅当 E 类对类型相同且结构指纹足够相似(通过 Jaccard 距离衡量)时,才会被送入反合一引擎进行深度处理。
- 启发式模式采样:即使对于一对匹配的 E 类,其可能的反合一结果(AU 模式)数量也可能组合爆炸。ISAMORE 不枚举所有可能,而是采样最具代表性的模式子集。它提供了两种采样策略:
- 边界策略:仅保留在特定代价特征(如预估延迟或面积)上达到极小值或极大值的极端模式。
- KD 树策略:将模式映射到多维特征空间,利用 KD 树对空间进行划分,并从每个区域中均匀采样,以保证候选模式的多样性。
效果验证:如表 2 所示,RII 技术从根本上提升了可扩展性。
* 禁用 RII(即类似 LLMT 的纯 E-Graph 反合一方法)时,候选模式数量高达数十万,导致内存消耗超过 30GB 而无法完成分析。
* 启用 RII 后,峰值 E-Graph 规模降低了 6 至 39 倍,内存占用稳定在 39MB 至 799MB 之间,所有测试用例均在 145 秒内完成分析。

表 2:基准测试内核及 RII 特性开启/关闭时 ISAMORE 的运行统计数据对比。
4.3 挑战三:如何实现最佳性能?—— 模式向量化与硬件感知选择
4.3.1 模式向量化(Pattern Vectorization)
ISAMORE 不仅识别标量定制指令,还能自动挖掘数据级并行(DLP),生成向量化指令。该过程分为三步,如图 9 所示。

图 9:模式向量化流程。(a) 种子打包:将多个标量模式实例的根节点合并。(b) 包扩展:应用提升规则,将标量操作转换为向量操作。(c) 无环剪枝:消除循环引用,得到可用的混合 E-Graph。
- 种子打包:在标量 E-Graph 中识别出可复用的模式(如
a*b + c),并在程序中找到该模式的所有实例(种子)。若多个种子位于同一基本块内,则将它们“打包”成一个向量种子。 - 包扩展:通过预定义的“提升”重写规则,将打包后的标量操作递归地转换为向量操作。
- 无环剪枝:向量化与标量化混合的 E-Graph 可能产生循环依赖。ISAMORE 采用贪心提取算法,仅保留一个最优的无环向量化方案,剪除其他分支,确保图的健康与轻量。
4.3.2 硬件感知的代价模型与帕累托选择
ISAMORE 采用一个硬件感知的代价模型来评估候选模式,并指导最终的选择。
- 代价模型:对于每个候选模式 ( p ),其带来的延迟节省 ( Delta L_p ) 通过软件执行时间(由模拟器分析获得)减去硬件加速器估计延迟(由轻量级 HLS 引擎估算)计算。整体加速比 ( S ) 和硬件面积开销 ( A ) 通过聚合所有被选中模式的贡献得出。
- 多目标帕累托选择:ISAMORE 在 E-Graph 中传播帕累托前沿。每个 E-Class 和 E-Node 都关联一组非支配解,每个解代表一个在加速比与面积开销之间具有不同权衡的模式集合。最终,设计者可以从根 E-Class 的帕累托前沿中,根据对性能或能效的侧重,选择最合适的定制指令集。
5. 实验评估
ISAMORE 在涵盖计算机视觉、数字信号处理(DSP)、密码学等领域的 9 个基准测试以及多个真实世界代码库上进行了全面评估。
5.1 与基线方法对比
如图 10 所示,ISAMORE 与三种基线方法(枚举法 ENUM、无等式饱和 NoEqSat、以及现有工具 NOVIA)在性能-面积权衡方面进行了对比。ISAMORE 生成的帕累托解集(红色点)始终更靠近坐标系的左上角(即更高性能、更小面积)区域,显著优于其他方法。

图 10:ISAMORE 与三种基线方法在 9 个基准测试上的性能-面积权衡对比图。
4.2 不同模式的影响

图 11:ISAMORE 不同模式在基准内核上实现的最大加速比。该图对比了 ISAMORE 四种模式在 9 个基准内核及 All 复合基准上的最大加速比。分析表明,Vector 模式在多数用例上优于 Default 模式;KDSample 模式因采样更全面,在部分用例上表现更佳;而 AstSize 模式因缺乏硬件感知,性能最差。结论是,向量化与硬件感知均能有效提升性能,不同采样策略存在效率与效果的权衡,Vector 与 KDSample 的组合能实现最优性能。
- AstSize 模式:以语法最小化为目标,不进行硬件感知优化,其性能表现最差,这证明了硬件感知的必要性。
- KDSample 模式:采用更全面的采样策略,能够发现更大的加速模式,在部分基准上性能更好,但搜索耗时和内存占用也相应更高。
- Vector 模式:引入向量化支持,在 MatMul、QRDecomp 等数据并行性强的任务上性能进一步提升,相较于基线 NOVIA 最高达到 2.69 倍加速。

表 3:NOVIA 与 ISAMORE 不同模式的统计数据对比。该表对比了指令数量、单指令操作数、复用因子等核心指标。分析发现,ISAMORE 的 Default 与 KDSample 模式平均复用因子达到 6.4-6.6,远高于 NOVIA 的 3.2;Vector 模式虽复用因子略降至 3.5,但通过向量化提升了并行性;AstSize 模式因无硬件感知,各项指标均不理想。结论是,硬件感知的选择策略和智能反统一是提升指令复用的关键,而向量化是提升并行性能的有效路径。
上表 3 对比了不同模式下的指令统计。Vector 模式生成的指令数量最多(平均 11.2 条),但平均操作数也更大(12.5),其复用因子(3.5)略低,这是因为向量指令本身已打包了并行操作,其“复用”体现在不同的向量化上下文中。
4.3 真实案例:量化 LLM 与后量子密码
- 案例1:BitNet (1.58-bit LLM):ISAMORE 识别出一个用于计算打包低比特点积的向量化模式,并为其生成了 RoCC 加速器。RTL 仿真显示,在带宽受限的情况下,该加速器实现了 2.15 倍的端到端加速,而硬件面积开销仅为 4.81%,且未引入时钟频率下降。

图 13:BitNet 量化大语言模型案例研究。该图展示了 BitNet 的 BitLinear 层结构及 ISAMORE 识别的向量化低比特点积模式。ISAMORE 为该模式生成 RoCC 加速器,实现了显著的性能提升与极低的面积开销。分析表明,这验证了 ISAMORE 在 AI 大模型推理领域的适配性,能够高效处理通用处理器不擅长的低比特操作。
- 案例2:CRYSTALS-KYBER (后量子密码):ISAMORE 自动识别出数论变换(NTT)中的核心操作——蝶形运算,并为其生成定制加速器,最终实现了 5.15 倍的性能提升。这展示了 ISAMORE 在应对快速演进算法(如后量子密码)时的潜力,能够无需人工介入即完成从算法到硬件的自动化定制。

图 12:真实世界领域库的实验结果。该图展示了 ISAMORE 在 liquid-dsp、PCL、CImg 三个真实领域库上的测试结果。相比 NOVIA,ISAMORE 实现了 1.39 倍至 1.64 倍的平均加速,以及 84.0% 至 93.2% 的面积节省。分析表明,这验证了 ISAMORE 在大规模、真实应用中的可扩展性,能够生成高复用、高效的定制指令。
五、相关工作:ISAMORE 在学术版图中的位置
ISAMORE 的贡献并非孤立,它融合并超越了多个相关领域的前沿工作。
- 指令定制:
- 早期工作主要关注基本块内的指令枚举,优化粒度较细。
- 粗粒度方法(如 NOVIA)通过语法合并寻找模式,但忽略了语义等价性。
- ISAMORE:首次将语义等价作为核心驱动,实现了真正高复用的指令生成。
- E-Graph 与等式饱和:
- Diospyros 利用 E-Graph 为 DSP 内核实现自动向量化。
- Isaria 专注于为 E-Graph 自动生成重写规则。
- ISAMORE:利用 E-Graph 创造新的、可复用的定制指令,与上述工作形成互补。未来可将 Isaria 与 ISAMORE 结合,实现“自动发现新指令 -> 自动生成编译器规则”的闭环。
- 程序合成与归纳:
- LLMT 提出了基于 E-Graph 反合一的库学习方法。
- ISAMORE:解决了 LLMT 在控制流处理、可扩展性和优化目标方面的局限性,并将其成功应用于芯片设计这一全新且实际的领域。
总结与展望
ISAMORE 不仅提供了一个强大的开源工具,更展示了一种设计范式的转变:在软硬件协同设计时代,最宝贵的资源是设计模式与知识的可复用性。
其对 AI 基础设施与芯片设计社区的启示包括:
- 适应算法快速演进:在后摩尔时代,算法迭代速度远超硬件。ISAMORE 这类自动化工具将成为连接快速变化算法与固化硬件的关键桥梁。
- 超越手工优化:未来,编译器与自动化指令生成框架能够自动分析计算图,提炼“原子操作”并动态生成硬件加速单元,从而减少对人工特征工程的依赖。
- 构建开放的指令生态:基于 RISC-V 的开放性与 ISAMORE 的自动生成能力,未来不同领域(如自动驾驶、生物信息)可以从其软件生态中“生长”出最优的、可共享的指令集,形成繁荣的定制指令生态。
ISAMORE 是迈向未来计算系统设计的关键一步。它预示着软件编写与硬件设计的边界将趋于模糊,而自动化的模式发现、复用与组合将成为下一代计算系统设计的核心范式。

参考文献




-
CGO’25:基于 MLIR 的持久化 E-Graph
该工作利用 MLIR 框架构建了持久化的 e-graph,以解决传统编译器优化中阶段顺序(phase-ordering)问题,使等价信息能够在编译全流程中持续传递与利用。
-
nncase:基于 E-Graph 的端到端 LLM 编译器
nncase 是一个面向神经网络编译的端到端框架。它采用基于 e-graph 的统一中间表示与编译框架,以高效应对不同存储架构带来的编译挑战,实现高性能代码生成。
-
ARISE:自动化 RISC-V 指令集扩展
该方案提出了一种自动化 RISC-V 指令集扩展方法。实验表明,其能为目标程序带来静态代码体积减少 1.48% 与动态指令数减少 7.39% 的双重优化效果。
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/28619


