V.E.L.O.C.I.T.Y.-OS:即时编译器核心——从... 笔记

V.E.L.O.C.I.T.Y.-OS:即时编译器核心——从抽象语法树到原生闭包(第四部分)

作者正在开发一个名为V.E.L.O.C.I.T.Y.-OS的新型裸机操作系统,设计用于CPU的L3缓存中运行。作为该项目的一部分,他们在神经文档架构(NDA)程序中使用标准解释器时遇到了性能问题,原因是调度开销过高。为此,实现了一个即时编译器(JIT)将抽象语法树(AST)转换为本地机器码。这个JIT编译器称为Tier-1 Closure-Based JIT,生成嵌套的Rust闭包,而不是直接机器指令。这种方法在编译时解决操作码匹配、作用域检查和控制流分支,使运行时的执行能够简单地遍历预编译的函数指针链。变量查找通过预分配槽并嵌入闭包中,从哈希映射查询到直接内存偏移量进行优化。管理Rust的借款检查器是一个重大挑战,尤其是在关闭需要访问外部数据结构(如Merkle数据库)时。最初,这需要通过Arc进行昂贵的引用计数,但通过更高等级特征界限(HRTBs)解决了这个问题,使闭包能够接受任意生命周期的状态。JIT 引擎还被封闭在一个定制沙箱中,以便安全编译和执行。这种基于闭合的JIT编译绕过了序列化瓶颈,从而加快了模型输出的处理速度。然而,作者指出堆分配和整数运算还需要进一步优化。下一期将详细介绍JIT数学的优化,包括无除法环。
CdXz5zHNQW_IfPQwymWr0.webp