## Rust 标准库现在可以在 GPU 上运行——VectorWare 的突破 VectorWare 取得了一项重要里程碑:使 Rust 的标准库 (`std`) 能够原生在 GPU 上运行。传统上,在 Rust 中进行 GPU 编程需要放弃使用 `std`,因为 GPU 上缺乏操作系统。这限制了代码重用和开发者体验。然而,像 NVIDIA 的 GPUDirect 以及 CPU 和 GPU 架构的融合等进步,现在使得 `std` 支持成为可能。 VectorWare 的解决方案利用了一个定制的“hostcall”框架——本质上是 GPU 和 CPU 之间的远程过程调用——来实现 `std` API。这使得现有的 Rust 代码只需进行少量修改即可在 GPU 上运行。虽然有些调用在 CPU 上处理,但目标是为开发者提供无缝的体验。 这项突破解锁了更大范围的 GPU 应用程序,并通过利用广泛的 Rust 生态系统显著提高了开发者效率。VectorWare 正在准备开源他们的工作,并与 Rust 社区合作将这些更改上游,探索长期可持续性的最佳抽象边界。最终,VectorWare 旨在将 GPU *带到* Rust,而不仅仅是将 Rust *带到* GPU,并计划在未来扩展对其他语言的支持。
## 估算可能的国际象棋对局:一种数据科学方法
本文探讨了估算国际象棋对局数量的方法,重点关注“短”对局(在100步内结束)。由于国际象棋的巨大复杂性,直接计数是不可能的,因此作者采用了两种技术:费米问题法和克努斯路径乘积估算法。
**费米问题**涉及将估算分解为更简单的、可猜测的组成部分——每局游戏的典型步数和每步的选择数量——从而得出大约10<sup>117</sup>的初步估算。然而,这种方法依赖于主观输入。
**克努斯路径乘积估算法**提供了一种更可靠的方法。它涉及模拟对局,然后计算每个位置的合法步数的乘积。一个关键定理表明,对所有可能的对局取这个乘积的平均值,即可得到对局的总数。最初使用10,000局游戏进行模拟,估算值为10<sup>151</sup>,但具有较高的不确定性。更大的样本(1,000,000)提高了可靠性,使估算值稳定在**大约10<sup>151</sup>**。
路径乘积法即使在针对已知值的非常短的对局进行测试时,也证明了其惊人的准确性,优于简单的指数趋势估算。最终,作者提倡使用克努斯方法,因为它避免了主观猜测,直接结合了游戏规则,并通过更大的样本提高了可靠性。