可以在编译器自动实现并行化解释/编译吗?

知乎热榜2个月前发布 NIUC!
240 0 0

酱紫君的回答

最近有个比较离谱 Bend 语言, 就是纯函数式的, 号称所有能够并行的一定会并行执行

github.com/HigherOrderC

语法类似 Python, 但是加入了一些纯函数式的特性, 基于 HVM2(第二代高阶虚拟机, Higher-order Virtual Machine 2).

可以在编译器自动实现并行化解释/编译吗?

可以用 AVX 或者 CUDA 作为后端, 自然地在 CPU 和 GPU 上大规模并行上运行,基于核心数实现近乎线性的加速.

且没有任何显式并行注释, 不需要线程, 也没有锁、互斥、原子等等过程式的糟粕。

而且 Bend 并不局限于特定计算范式, 如张量计算或者多面体循环优化这些, 用户压根不需要懂优化。

任何并发系统,从 Shader 到 Actor 再到 Stackless Coroutine,都可以在 Bend 上自动并行, 即便是复杂的算法也能跑的很好。


背后这个逆天的理论被称为 交互式组合子 (IC, Interaction Combinators[1]), 该理论可以追溯到 1997 年的一篇论文.

可以在编译器自动实现并行化解释/编译吗? Interaction Combinator for HVM https://www.zhihu.com/video/1780384828069388288

这个算法的弱点是对于时延不敏感, 但是对时序很敏感, 也就是说算乘法或者循环可能打不过手写的算子, 但是跑实际的业务逻辑就很厉害了, 和其他编译器不是一个维度的存在.

而且按照这篇论文的描述, 它是一种组合子逻辑, 也就是说这个东西可以简单地就扩展到无状态分布式网络, 可以说这场革命才刚刚开始.

© 版权声明

相关文章

暂无评论

暂无评论...