HOC/HVM/Bend现状简述: 大约一年前,我们推出了Bend1。 - 首个在 GPU 上运行闭包和快速对象分配器的语言 - 接近理想的加速效果,最高可达 10000+ 个核心 - 基于 HVM2,一种用于交互网络的严格运行时 问题: 解读成本仍然很高。 - 完全 RTX 4090 可以击败单核 OCaml / JavaScript / 等。 - 存在很大的实际限制(int24、不支持 I/O、不支持打包) 尽管使用了 Python 语法,但仍然很难使用。 事实证明,大多数开发者都不具备递归思维。 - 与惰性求值不兼容(不是β最优的!!) 我对上述问题感到失望。与此同时,我对将最优评估应用于程序合成问题越来越乐观,而程序合成是符号人工智能的基石——一个失败的想法,但我强烈地感到“我可以解决它”。 我做出了一个决定:放弃 HVM2(💀),回归 HVM1 的根基。HVM1 基于我的“交互演算”,并采用了 β 最优性。我对其进行了大量的润色和改进,最终得到了 HVM3,一个用 Haskell 编写的原型。之后,我利用它来理解和研究最优评估器上的程序合成。这非常艰难,耗费了我大约一年的时间,但结果是积极的,我们的系统现在在效率和功能方面都超越了所有已发表的替代方案。 现在,我们将所有这些成果巩固起来,通过用纯 C 语言实现运行时/编译器,使其能够在我们简陋的 Mac Mini 集群上尽可能高效地运行(🥹),并通过 API 将其提供给全世界。 我原计划在十月份发布,但目前仍存在一些挑战,耗时比预期更长。例如,使用 SupGen 寻找精益证明需要非常谨慎地处理叠加态,而用 C 语言实现这一点实际上难如登天——不过,项目进展顺利,我们已经完成了大量工作,我仍然预计今年或 2026 年第一季度发布 Bend2 / HVM4。 Bend2 将具备: - 并行 CPU 运行时,支持惰性/最优模式(!!!) - 终于支持 16/32/64 位整数、无单位整数和浮点数了 - 通过轻量级 C 互操作(例如 Zig!)实现任意 I/O - 由于时间有限,目前还没有 CUDA,不过这完全可以实现。 - 最重要的是:SupGen 集成 SupGen 是一项全新的技术,也是 Bend2 的核心创新。它并非传统意义上的 AI,而是一种能够根据示例和规范生成代码的全新技术。我认为许多人(尤其是深度学习领域的专家)都会对我们仅凭符号搜索就能取得如此成就感到措手不及,而我最期待的,莫过于看到大家的反应。
还有一点忘了提: - Bend2 可以导出为 JavaScript/Haskell 格式,因此您可以直接使用它来编写普通应用程序,而无需等待 Bend 生态系统的支持。 遗憾的是,Bend2 将违背一个承诺:“如果可以并行运行,它就会并行运行”。这是因为这个承诺显然与惰性求值不兼容(要么等待表达式是否可见,要么并行计算它——二者不可兼得)。我仍然希望将来能以 HVM2 的直接更新形式提供完整的严格模式,但时间紧迫,这并非我们目前的重点。不过,好的一面是,我相信我们可以在 GPU 上运行惰性模式。实际上,我认为这将比完全严格并行要好得多。 我们的WeFunder众筹活动仍在进行中,但我不会再积极跟进,活动结束后就会关闭。