Algorithms

25 篇内容

技术文章Phil Eaton - databases

Implementing the Raft distributed consensus protocol in Go

本文详细介绍用Go语言实现Raft分布式共识协议中领导者选举和日志复制两大核心组件,并构建其上分布式键值存储。作者从状态机与KV API入手,逐步实现持久化、RPC、选举超时、投票逻辑、日志复制与提交推进。文中强调按Raft论文图2建模状态,并给出二进制持久化优化、批量复制等工程取舍。实现约1000行,经过手动与压力测试,但未接入Jepsen,也未实现重配置和快照,且固定日志条目大小;作者明确声明不用于生产,仅用于学习。整体展示了从算法到可运行系统的完整路径,适合理解共识实现细节。

推荐收录,因为文章以完整Go代码和Raft论文为依据,系统讲解选举与日志复制,并明确给出测试情况与限制。适合想深入理解分布式共识实现、数据库复制或使用Raft库的工程师和研究者,可迁移用于实现类似协议或排查相关问题;主要风险是版本未经验证、缺少快照等生产特性。

技术文章Simon Willison

SQLite compressed text-history prototypes

文章探索在 SQLite 关系数据库中高效存储文本修订历史的方案。作者提出将文档的每个历史版本完整放入 JSON 字符串数组,再整体用 zlib 或 Zstandard 压缩,以 BLOB 形式存储;另用整数数组列保存时间戳,避免压缩。通过 GPT 辅助生成 Python 原型并模拟 1000 次修订,实验显示 20.4MB 原始修订文本压缩后仅 80.3KB,验证了冗余重复带来的高压缩比。为规避每次编辑全量解压重压缩的开销,进一步提出将历史拆分为多行,每行最多保留 128 个修订或 3MB 未压缩 JSON。该方案实现简单,适用于编辑频繁且文本重复度高的历史记录场景,但尚未评估高频写入、版本检索和并发冲突等生产级问题。

推荐收录,因为文章给出了一个可复现的原型验证:1000 次修订从 20.4MB 压缩至 80.3KB,并明确了拆行存储的工程折衷。这种利用全文冗余进行压缩的简单方案对处理版本历史、审计日志或文档快照的工程师有直接参考价值,可迁移到其他需要高效存储多版本文本的场景。主要风险是未与增量存储或事件溯源等常见方案做对比,也未覆盖高并发写入和随机版本读取的约束。

技术文章MaskRay

Estimating branch probabilities

文章深入解析LLVM分支概率信息(BranchProbabilityInfo)在没有PGO(Profile-Guided Optimization)资料时的静态估计机制。作者首先梳理了LLVM估算分支概率的多级回退流程,重点剖析了calcEstimatedHeuristics算法,该算法利用不可达、noreturn、cold等区块的种子权重,通过支配树和后支配树反向传播,并结合循环结构对出口边进行缩放,从而为多后继终结指令分配概率。文中给出了独立的C++实现,并详细讨论了权重标度、边分类、循环嵌套森林的作用,以及不可归约循环对概率计算的影响。此外,还指出了与LLVM源码bit-per-bit匹配所需注意的实现细节,如种子顺序和工作列表顺序。该方法展示了静态分析中如何仅凭控制流图和循环结构生成合理分支猜测,对理解编译器优化有重要参考价值。

本文为编译器开发者、程序分析研究人员或对底层代码优化感兴趣的人员提供了LLVM分支概率静态估计的深入技术剖析,不仅解释了算法原理、设计取舍和工程考量,还附带可复现代码和对比案例。其详细程度足以帮助读者迁移到其他编译系统或静态分析工具的开发中,适合作为长期技术参考资料收录。

技术文章Max Bernstein

A quick look at zero-knowledge proofs

文章以图三着色为例,从 Goldreich 等原论文的 Protocol 4 出发,用 Python 代码展示零知识证明的交互式流程。作者实现颜色置换、Nonce 加盐哈希锁定、随机边挑战和校验,解析单轮协议逻辑。然后讨论多轮重复的概率保障,并简要介绍如何将协议推广到数独和其他 NP 完全问题。文中还提供客户端/服务器端的交互式演示,指出该方法在实际大数分解等场景中因图规模过大而存在实践限制。整体面向计算理论和密码学爱好者,强调可运行代码与学术论文的对应关系。

推荐收录,因为文章将经典零知识证明协议从论文转化为可运行代码,完整保留原协议中的置换、Nonce 和哈希锁定等关键设计,并提供概率分析和交互式演示。适合对密码学、计算复杂性或交互式证明感兴趣的学生和工程师,可作为理解 ZKP 原理和实现 NP 完全问题零知识证明的入门参考。文中对归约方法的讨论也提示了该技术的实际边界与迁移思路。

技术文章Eli Bendersky

Relative velocity and closing speed

本文讲解物理模拟或游戏引擎中计算两个物体接近速度的方法。作者先定义相对速度向量,并分解为连线方向的法向分量和切向分量;再通过向量投影和单位向量,使用点积求得闭合速度这一标量,其符号表示物体是否相互靠近。文章用多个具体示例演示计算过程,包括不同相对位置和速度情况,强调符号规约和瞬时性。最后将闭合速度推广为时间函数,证明其等于相对距离对时间的导数,并指出该公式在二维和三维空间中均适用,但假设物体可视为质点。

推荐收录,因为文章用清晰的向量分析和逐步推导,将闭合速度这一物理概念转化为可直接实现的算法,附有详细示例避免符号错误。适合游戏开发、物理引擎或模拟系统的开发者作为参考,其分解思路和投影方法可迁移至其他涉及方向分量计算的场景。

工程实践GitHub Engineering

Don’t stop early: Case-folding source code at memory speed

文章介绍了 GitHub 代码搜索引擎中实现高速 Unicode 大小写折叠(case‑folding)的技术方案。核心优化是在 ASCII 路径中去除提前退出分支,采用无分支循环配合自动向量化,使纯 ASCII 折叠速度超过 45 GiB/s。对于 Unicode,设计了一种仅 1776 字节的紧凑查找表,结合页位图、区间编码与字节级差值运算,避免码点解码而直接在字节空间完成折叠,将非 ASCII 路径开销降到最低。该方案在常见输入上显著超越其他实现,且已开源为 Rust crate casefold。文章还详细讨论了分支消除、向量化、内存带宽等权衡,以及该方法依赖小端字节序和合法 UTF‑8 的边界条件。

推荐收录,因为文章深入剖析了大规模文本处理中的极致性能优化方法,从分支消除、向量化到创新的字节空间 Unicode 折叠,展示了完整的工程决策过程和量化对比。对于从事搜索、编译、系统编程或性能优化的读者,文中的无分支循环设计、紧凑查找表结构和“一次扫描检测+转换”等技巧具有直接的可迁移价值,是真实的工程案例而非泛泛调参记录。

技术文章知乎 - 严格鸽

从LeetGPU的一道题目到 Radix TopK / AIR TopK

本文以 LeetGPU 上的 Top-K 选择题目为切入点,系统介绍了在 GPU 上利用 Radix TopK 和 AIR TopK 算法高效完成最大 k 个元素选取的方法。作者首先处理了浮点数无法直接按二进制位比较的问题,通过 ordered_bits 转换将 float32 映射为保持数值顺序的无符号整数。然后详细演示了 Radix TopK 按高位到低位分桶、定位 splitter bucket 并逐步缩小候选范围的过程,给出了具体步骤和代码示例。在此基础上引入 AIR TopK(Adaptive and Iteration‑fused Radix Top‑K),说明当候选数据量下降到一定程度时,可以向专用 buffer 收集候选元素,以减少后续轮次的扫描开销。文章还提及 CUB 中的每轮 11 位处理策略,并给出性能测试结果。全文适用于了解 GPU 上的并行 Top‑K 算法实现,对大规模数据、k 较小场景有直接参考价值,但迭代融合部分的实测效果不显著,且测试环境主要基于 T4,硬件差异可能需要进一步验证。

本文从实际题目出发,深入讲解了 GPU 上 Radix TopK 和 AIR TopK 的算法原理与优化,提供了可运行的代码示例和清晰的图示,不是简单的问题解答或操作指南。对需要实现高性能 Top‑K 选择的 CUDA 开发者、并行算法研究者具有直接的参考价值,文中的 ordered_bits 转换、分桶筛选和自适应收集等思路可以迁移到其他基于 GPU 的排序与选择任务中。

技术文章LWN.net

[$] Hazard pointers for the kernel

文章介绍了hazard pointers作为内核RCU机制的替代方案,用于实现无锁数据更新。作者从原理层面比较了两者的内存开销、延迟和回收确定性,指出hazard pointers在低内存占用和及时回收方面的优势。文章还结合内核社区正在评估的实现,讨论了并发内存排序、安全语义以及实际部署中的工程权衡。内容适合理解内核无锁、垃圾回收机制和并发数据结构的读者,但未深入特定硬件架构或极端性能测试。

文章从原理、优缺点和工程可行性多角度剖析了hazard pointers在内核中的应用,具备深度的技术比较和清晰的适用边界说明。对于系统开发者、内核工程师或关注高性能并发的读者,本文可作为理解无锁同步替代方案的优质参考,迁移价值高。

技术文章知乎 - SmartCode 得物技术

RAG 核心概念与原理:Chunking、Embedding、相似度、HNSW 与多路召回|得物技术

文章系统梳理了RAG(检索增强生成)的核心检索技术链路,从LLM的局限性引出RAG的必要性,依次阐述了文档切分策略(Chunking)、文本向量化(Embedding)的原理与对比学习训练方式、向量相似度度量(以余弦相似度为主)、以及近似最近邻搜索算法HNSW的分层图设计与贪心搜索机制。在此基础上,完整介绍了查询改写、元数据过滤、多路召回(ANN+BM25)、RRF排名融合与Cross-Encoder重排序(Rerank)的协同工作流程,并强调了混合检索与各环节工程取舍的重要性。全文提供了具体的参数选择、算法复杂度和实践建议,适合构建高质量RAG系统的开发者参考。边界:未涉及具体模型微调与超大规模部署,但覆盖了核心概念与实用策略。

本文深入浅出地讲解了RAG检索系统的核心原理与工程考量,从Embedding到HNSW再到混合检索,每一环节均有理论解释和实际示例,避免空泛介绍。适合AI工程师、后端开发者以及希望优化检索效果的技术人员。文中关于Chunking策略、HNSW参数调优、多路召回融合等可迁移经验具有较高的实践指导价值,因此推荐收录。

技术文章知乎 - 严格鸽

在GPU上寻找HashMap是否搞错了什么——cuCollections代码解析

文章深入解析了NVIDIA cuCollections库中GPU哈希表static_map与dynamic_map的实现细节。static_map采用固定容量的开放寻址设计,默认以4个CUDA线程为一组(tile)协作插入或查找一个键,利用CAS原子操作解决并发写入冲突。文中详细说明了强类型哨兵、线性探测方案(ProbingScheme)、存储配置(Storage)等模板参数的作用,并结合代码剖析了插入和查找CUDA kernel的完整流程。dynamic_map通过维护多个static_map子表实现自动扩容,但旧数据不搬迁,导致查找需遍历所有子表,成本随扩容次数递增。整体上,文章为理解GPU上并发哈希表的协同设计与工程实现提供了清晰的代码级参考,适用于GPU加速数据库等场景,但缺乏性能评估与扩容策略的深入对比。

文章直接展示了GPU哈希表的线程协作、CAS并发控制等关键工程实现,代码解析深入,具备长期参考价值。适合CUDA开发者、数据库加速系统设计者理解GPU上数据结构的设计模式与约束。可迁移价值在于组合作、原子操作在并发容器中的实际应用,但需注意文中未给出性能基准,实际选型时还需自行测试。

工程实践知乎 - 严格鸽

LeetGPU Hard 题目笔记(1)(三道暂时排名第一的题)

文章记录了作者在LeetGPU平台解决三道Hard题并取得暂时排名第一的过程,覆盖了Multi-Agent Simulation、K-Means Clustering和All-Pairs Shortest Paths。对于多智能体模拟,利用随机分布的假设设计了基于空间网格的邻居查找优化;K-Means通过将聚类中心放入共享内存、展开循环并运用cooperative_groups实现跨块同步,提升并行效率;全源最短路采用分块Floyd‑Warshall算法,将矩阵划分为64×64个小块,使用共享内存和寄存器优化。每道题均给出了题意分析、核心思路、关键代码链接及性能结果,适用于测试数据范围,展示了从简单实现到充分利用GPU硬件特性的工程优化过程。

推荐收录,文章提供了三道具体GPU编程题目的完整解法与优化历程,不仅是代码片段,更展示了性能分析、网格划分、共享内存使用、cross‑block同步等实用工程技巧,对从事GPU并行算法开发和性能优化的读者有直接参考价值,相关方法可迁移至其他密集计算或聚类类问题。

科研议题知乎 - 苏剑林

矩阵函数近似中的暴力美学

本文提出一种通用的矩阵函数近似框架,针对奇异值型矩阵函数,构造三次多项式迭代格式,通过贪心策略逐层求解每一步的系数参数,将优化问题转化为线性回归或线性规划以稳定获得有效解。该框架克服了现有方法仅适用于有理次幂且复杂度依赖分数分母的局限,能够以固定迭代阶次近似任意连续函数,相近函数的近似系数也自然接近。文中以立方根、五次方根等为例给出了具体迭代系数和误差对比,验证了方法在最大误差和通用性上的优势,并讨论了边界约束、初始条件等工程细节,最后提供了基于CVXPY的参考实现。

文章针对矩阵函数计算这一基础问题提出了系统性改进方案,从问题定义、现有方法局限梳理到通用框架设计和优化求解,技术脉络清晰,数学推导扎实,并附有可复现的参考代码和误差分析。其贪心求解思路和线性规划转化技巧具有一定的可迁移性,适合从事数值计算、优化器实现或科学计算库开发的研究者和工程师参考。

工程实践LWN.net

[$] Lockless MPSC FIFO queues for io_uring

文章介绍了 Linux 7.2 内核中 io_uring 子系统将工作项跟踪机制从标准链表替换为无锁多生产者单消费者(MPSC)队列的工程实践。作者逐步解释了无锁队列的设计原理,包括原子操作、内存顺序和使用场景,并展示了该变更带来的显著性能提升。文章还讨论了无锁算法在正确性与性能之间的权衡,以及该实现为何适用于 io_uring 的特定工作负载。内容聚焦于真实工程问题、具体实现取舍和可验证的效果,为理解内核并发优化提供了清晰的案例。

推荐收录,因为该文不仅报告了性能提升结果,更深入解析了无锁 MPSC 队列在内核中的具体设计和正确性保障,展示了从问题识别到算法选择、验证的全过程。对从事内核开发、高性能系统设计或对无锁编程感兴趣的读者有直接参考价值,其设计思路和分析方法可迁移至其他并发场景。

技术文章Eli Bendersky

Notes on the Fourier Transform

本文从傅里叶级数出发,通过让周期趋于无穷大,逐步推导出傅里叶变换,重点演示了非周期函数如何从离散频率系数过渡到连续频率函数。作者以一个奇三角脉冲为例进行计算,展示变换的复数结果及其幅度和相位,并讨论频率域表示的意义。文章还阐述了傅里叶变换的存在条件(绝对可积)、以及线性、缩放、时移、导数和卷积等关键性质,最后给出卷积定理。内容偏向工程实用,对数学严谨性有所取舍,假设函数在无穷远处趋于零,适合信号处理等领域的入门学习。

推荐收录,因为本文以清晰、有层次的推导讲解了傅里叶变换的核心概念,并提供了可交互的直观演示(文字描述)和具体计算示例。适合计算机专业学生、信号处理或相关领域的工程师作为理解频域分析的基础参考,其从级数到变换的推导思路也具有可迁移的学习价值。

技术文章Simon Willison

DOOMQL

文章介绍了 DOOMQL 项目,一个完全用 SQLite 实现 Doom 式游戏的大胆实验,将移动、碰撞、敌人逻辑和光线追踪渲染全部写成 SQL 查询。作者展示了如何在终端运行该项目,并利用 Datasette 工具探索其生成的 SQLite 数据库;他还通过 Datasette Apps 插件快速构建了实时游戏画面仪表盘。文章重点在于演示 SQL(尤其是递归 CTE)在实时图形领域的非传统应用,以及如何结合 uv、Datasette 等工具进行探索式开发。适用边界在于这主要是技术验证和教学范例,不适合生产环境游戏开发,但其工具集成和查询设计思路对数据密集型应用的可视化或交互探索有启示意义。

本案例通过具体可复现的步骤,展示了用递归 CTE 实现光线追踪的工程做法,以及利用 Datasette 快速组装定制监控视图的实践。适合对数据库高级应用、工具链集成或创意编程感兴趣的开发者阅读,有助于掌握递归查询的深度用法和轻量级工具组合技巧。虽然游戏本身非工程级,但作为学习范例和灵感启发,其方法可迁移至数据探索、实时可视化等场景。

技术文章知乎 - 苏剑林

强制间隔投影(Margin-Enforcing Projection)

本文提出一种称为“强制间隔投影(MEP)”的数学运算,用于将分类分数向量投影到满足正类最小分数比负类最大分数至少大一个指定间隔的最近向量上。作者先阐述了间隔约束在稳健分类和特征学习中的必要性,然后给出 MEP 的数学定义,并分别在 L2 和 L1 距离下推导求解方法:L2 情形转化为分段线性函数的零点搜索,L1 情形则有简洁的排序取分位点闭式解。文章还提供了 JAX 实现代码,分析了两种距离下的算法复杂度和适用性,推荐实践中使用 L1 版本。该投影运算可直接作为模型学习目标,为设计带间隔的损失函数提供新思路,但适用边界限于单次分类分数向量的投影变换,并非完整的训练算法。

本文从一个实用需求出发,用清晰的数学推导和配套代码完整地讲解了 MEP 运算的原理与实现,既有理论深度也有工程可操作性。它适合从事度量学习、损失函数设计或分类器鲁棒性优化的读者,其中 L1 版本的简洁解法可直接用于训练流程中的后处理或约束嵌入。尽管不是端到端的新损失函数,但其投影思路具备较高的可迁移价值,可作为构建定制化损失组件的参考。

技术文章知乎 - 木鸟杂记

工程中的经典 “意象”(一):滑动窗口

文章以“意象”和“隐喻”视角,将滑动窗口这一经典工程概念串联到TCP可靠传输(停等、GBN、SR协议)、LeetCode字符串处理(无重复最长子串、最小覆盖子串)、Raft共识算法(同步窗口与应用窗口)以及流式数据调度等多个计算机领域。作者以个人学习与工作经历为线索,逐步揭示滑动窗口的核心结构:序号机制、有限视图和单调移动,并强调其“以有限应对无限”的设计哲学。文中对每个场景的推导过程、关键细节和工程取舍均有说明,尤其点出双指针维护窗口、计数器表达视图等共通技巧。文章偏向概念梳理与跨领域类比,未深入单一实现细节或性能边界,更适合建立全局直觉而非直接作为实现手册。

推荐收录,因为文章将滑动窗口从具体协议和算法中提炼为可迁移的工程隐喻,以生动案例串联多个计算机子领域,能帮助读者建立跨层次的系统思维。适合对分布式系统、算法设计或计算机网络感兴趣的学习者,文中总结的“序号+窗口+滑动”模式可直接迁移至数据管道、状态同步等工程场景。

技术文章MaskRay

Irreducible loops

文章聚焦于编译器和程序分析中的不可约循环(irreducible loops)问题,首先回顾了支配树和自然循环在可约控制流图上的局限性,指出在优化后的机器码及反编译输出中常见的多入口循环无法被基于支配关系的方法识别。随后详细介绍了韦韬等人在SAS 2007提出的单趟DFS算法,该算法无需支配树或UNION-FIND,通过将遍历中遇到的每条边分为五种情况,并结合“头部链”合并机制,在一次深度优先搜索中同时完成循环识别与头部标记。文章提供了完整的C++实现,并借助不可约核心图和嵌套结构示例验证了算法输出Havlak最细化循环嵌套森林,同时展示了可约情况下与自然循环的一致性。该算法的时间复杂度为O(N+k*E),其中k为衡量非结构化程度的系数,在实际代码中接近线性。文章也指出了算法对DFS顺序的依赖以及不可约循环头的不唯一性。

推荐收录,本文不是简单的算法复述,而是从理论缺陷出发,逐步引出单趟DFS解决方案,并配有清晰图示、完整代码和可运行示例。它对编译器工程、程序分析和反编译领域的读者具有直接的参考意义,能够帮助他们理解如何处理非结构化控制流,并将这套轻量级循环识别方法迁移到自己的静态分析工具中。

工程实践知乎 - 严格鸽

从leetgpu的一道题目到CUB中的Decoupled look-back

本文以LeetGPU上的一道stream compaction题目为切入点,记录了从基础的多kernel前缀和实现到借鉴CUB的Decoupled look-back算法的完整优化过程。作者首先解释了题目要求和并行化思路,然后逐步融合算子、调整tile大小,最终引入基于状态的look-back机制,将全局扫描的读写复杂度降至2N。文章详细展示了tile状态机的设计、warp级扫描与lookback_sum的实现,以及针对写回路径的shared memory/global memory双路径优化。此外,还涵盖union复用shared memory、 sleep等待策略等工程技巧,并对比了Thrust和手写CUDA的性能差异。整体呈现了一个从简单到高性能的实战优化路径,适用于单GPU上的稳定stream compaction,但算法思想可迁移到其他并行扫描场景。

收录理由:本文不是单纯的代码片段或性能报告,而是展示了从算法选型到微观工程优化的完整决策链,包括对Decoupled look-back原理的剖析、状态机设计、warp级协同和硬件调优。对学习CUDA性能优化、并行扫描算法以及从CUB源码借鉴实践的读者具有直接参考价值,文中的look-back模式、shared memory复用和双路径写回策略均可迁移到类似的高性能GPU编程场景。

技术文章Cloudflare Blog

Why we cannot wait for better post-quantum signature algorithms

本文系统比较了当前及正在标准化的后量子签名算法,包括 ML‑DSA、SLH‑DSA、FN‑DSA、HAWK、基于知识的证明方案、以及 MAYO、SNOVA、UOV、QR‑UOV 等多元变量方案。作者详细分析了各方案的性能指标、安全假设、实现难点和适用场景,指出了 SQIsign、UOV 等专业化方案与 ML‑DSA 等通用方案的各自权衡,并梳理了从提交、标准化到实际部署的完整时间线。文章核心结论是:尽管未来可能有更优算法,但威胁迫近,ML‑DSA 已是当下唯一可行的第一波迁移选择,而继续推进新算法研究对长期安全和高级密码原语仍不可或缺。讨论主要面向 TLS 及 WebPKI 场景,未深入其他非互联网协议。

推荐收录。本文为后量子签名技术现状提供了极佳的参考综述,从算法原理、性能对比、安全分析到部署时间线均覆盖详尽,尤其适合安全工程师、架构师和决策者规划密码迁移时参考。其来自 Cloudflare 的实战视角和明确的工程判断(“用现有算法开战”)具有强可迁移性,能帮助读者快速建立对后量子签名方案的整体认知并做出务实的技术选择。

工程实践Amazon Science

Navigating uncertainty in Amazon's middle-mile network

这篇文章讲的是 Amazon 中段物流网络(middle-mile network)如何在需求波动、路况变化、设施故障等不确定性下进行网络设计与调度优化。核心思路不是追求对每一种异常都“鲁棒化”到完全免疫,而是通过“可选性(optionality)”设计、粗粒度优化加时间边界约束、以及 Monte Carlo 生成场景来评估方案的脆弱性,从而筛选出在常态和扰动下都更稳定的网络方案。文章还介绍了用图注意力网络同时建模站点图和起讫点图,以捕捉空间相关性与流量耦合关系,帮助生成更真实的需求场景。

推荐收录,因为它把大规模物流网络中的不确定性优化问题讲得比较具体,展示了优化、机器学习与仿真场景生成如何组合起来服务真实业务。虽然是博客形式,但其中关于“不要只优化平均情况、要为扰动保留可选性”的方法论,对做供应链、运筹优化和大规模决策系统的读者有较强迁移价值。

技术文章Max Bernstein

Value numbering

本文系统讲解了编译器中的 value numbering:先从 SSA 中“同形表达式是否可复用”的问题切入,说明它如何用于公共子表达式消除,并区分纯操作与带副作用操作。作者给出局部 value numbering 的实现思路:用哈希表为指令建立值号,遇到已存在的等价指令就用 union-find/Assign 形式替换,从而在单个基本块内消除重复计算。随后文章把问题推进到全局 value numbering,重点解释了为何必须借助支配关系而不是简单按块遍历,以及在分支、汇合和循环中 phi 节点为何需要特殊处理。文章还讨论了内存相关指令的失效与转发,例如 Load/Store forwarding、跨块的 kill set 管理,并对 Maxine、ART、V8、HotSpot 等实现做了对照。最后作者补充了统一哈希表、value partitioning、scoped hash map、JIT 场景中的强度削弱等相关方向,指出该方法对重复纯表达式很有效,但处理副作用和循环时需要额外的可用性与失效管理。

推荐收录:文章明确覆盖了 value numbering、SSA、dominators、phi 处理、内存失效与 load/store forwarding 等关键机制,并给出 Maxine 等真实实现片段作为直接证据。适合编译器、JIT 和程序优化读者参考,迁移价值在于可直接借鉴其“哈希表+支配关系+失效管理”的分析框架;主要边界是它对复杂内存建模与循环优化仍是概述性质。

技术文章matklad

Consensus Board Game

这篇文章用“委员会投票/棋盘”隐喻解释共识算法的核心数学结构,目标是帮助读者直观理解 Paxos 一类协议为何能在成员缺席时仍达成一致。作者先从简单多数投票讲起,说明为什么平票和领导者缺席会让决策卡住,再引入轮换领导者与“只允许批准”的规则来恢复可完成性。随后把单次投票扩展为半无限二维棋盘:每一列独立推进、每列都可能形成多数,但全局必须保证任意两个已完成多数列的结果一致。文章进一步说明,参与者需要基于左侧已知状态和“未来可能性”来选值,并通过让某个多数先承诺不在左侧投票,排除冲突结果。它的价值在于把安全性、活性与多数承诺的逻辑关系讲得非常直观,但作者也明确说明这里只覆盖抽象数学层面,未展开真实分布式系统中的消息时序、通信延迟和工程实现细节。

文章直接用棋盘图像重构共识协议的安全性与多数承诺逻辑,适合一直觉得 Paxos 难懂的读者。它的迁移价值在于帮助建立抽象模型,但不覆盖工程实现细节,适合作为入门和复习材料。

技术文章Max Bernstein

A multi-entry CFG design conundrum

文章讨论 ZJIT 在编译 Ruby 字节码时遇到的多入口控制流图设计难题。由于 Ruby 默认参数在调用时求值,编译器需要把默认参数逻辑放在被调函数内部,并同时支持解释器入口、JIT 入口和若干默认参数入口。作者展示了这种 HIR 设计如何让 SSA、RPO 遍历和 Cooper 风格支配树算法都变得别扭,因为图里不再存在唯一的起始块。文中系统比较了三种方案:保留特殊处理、合成超级入口块、或按入口复制整张 CFG,并说明复制方案虽然简单但会带来代码膨胀。最终更新里给出团队选择了 superblock/EBB 方案,接受了更复杂的 dominator 与 predecessor 处理,以换取更清晰的入口模型。文章的边界也很明确:结论主要适用于多入口 IR 设计,后续复杂分析仍需继续验证。

收录价值在于它不是泛泛谈“编译器设计”,而是拿真实的多入口函数 IR、支配树失配和三种可选方案做了具体权衡。适合编译器、语言运行时和 IR 设计读者参考,尤其是需要处理入口分裂、默认参数或多返回点的实现者。

技术文章Stanford Hazy Research

Long Convolutions for GPT-like Models: Polynomials, Fast Fourier Transforms and Causality

文章用一个面向模型实现的教程,解释长卷积为何能用于 GPT 类长上下文模型。作者先把序列和卷积核写成多项式系数,说明卷积系数等价于多项式乘法中的卷积项,从而把问题转化为代数运算。接着介绍系数表示与取值表示之间的转换,借助根单位构造离散傅里叶变换矩阵,并利用 FFT 将乘法复杂度降到 O(n log n)。文章最后讨论“因果性”与额外高阶项的处理方式,区分截断、延长和循环卷积,并指出 GPT 风格模型通常需要前两者而不是纯循环卷积。其不足是偏入门教程,数值稳定性、实现细节和硬件优化只做了概述,但作为理解长卷积与 FFT 关系的入门材料很扎实。

文中直接给出了“卷积=多项式乘法”“FFT 实现 O(n log n) 乘法”以及因果卷积如何适配 GPT 的完整链条,适合做长上下文建模、序列建模和高效算子实现的基础参考。它对研究和系统读者都可迁移,但主要是教程性质,读者仍需结合实现论文或代码处理数值稳定与工程细节。