酱紫君的回答
最近有个比较离谱 Bend 语言, 就是纯函数式的, 号称所有能够并行的一定会并行执行
https://github.com/HigherOrderCO/Bend
语法类似 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
这个算法的弱点是对于时延不敏感, 但是对时序很敏感, 也就是说算乘法或者循环可能打不过手写的算子, 但是跑实际的业务逻辑就很厉害了, 和其他编译器不是一个维度的存在.
而且按照这篇论文的描述, 它是一种组合子逻辑, 也就是说这个东西可以简单地就扩展到无状态分布式网络, 可以说这场革命才刚刚开始.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...