@__tinygrad__ 将赢得机器学习库战争的 3 个原因。
1. tinygrad 搜索其内核。tinygrad 使用 BEAM 搜索和即将推出的 MCTS 来搜索最佳内核。您只需为每个加速器编写少量代码,而不是手写一堆乱七八糟的内核。这避免了设备、操作和量化组合中每个内核的组合噩梦(其他库有 1000 个独特的内核)。如果搜索效果良好,您最终也会得到更快的内核,尤其是对于任何“不走寻常路”的东西,人类专家没有花费数千小时来优化内核。
2. tinygrad 很小。它只有不到 10k 行代码,因此您可以真正了解发生了什么。您可以进入那里并进行更改。更少的代码也意味着更少的错误:经验法则是每 100 行代码约有 1 个错误。架构简单而干净(参见架构图)。证明:我在一次黑客马拉松上用 4 台 Mac Mini 通过 thunderbolt 在 6 小时内从头开始实施了分布式训练,而之前对 tinygrad 一无所知--祝你在 PyTorch 中从头开始做这件事好运。
3. tinygrad 是惰性的。这简化了很多事情,例如从磁盘--流式执行模型,因为张量是惰性的,所以开箱即用。这种设计还使 tinygrad 能够积极地融合操作,最终获得更快的内核。
1. tinygrad 搜索其内核。tinygrad 使用 BEAM 搜索和即将推出的 MCTS 来搜索最佳内核。您只需为每个加速器编写少量代码,而不是手写一堆乱七八糟的内核。这避免了设备、操作和量化组合中每个内核的组合噩梦(其他库有 1000 个独特的内核)。如果搜索效果良好,您最终也会得到更快的内核,尤其是对于任何“不走寻常路”的东西,人类专家没有花费数千小时来优化内核。
2. tinygrad 很小。它只有不到 10k 行代码,因此您可以真正了解发生了什么。您可以进入那里并进行更改。更少的代码也意味着更少的错误:经验法则是每 100 行代码约有 1 个错误。架构简单而干净(参见架构图)。证明:我在一次黑客马拉松上用 4 台 Mac Mini 通过 thunderbolt 在 6 小时内从头开始实施了分布式训练,而之前对 tinygrad 一无所知--祝你在 PyTorch 中从头开始做这件事好运。
3. tinygrad 是惰性的。这简化了很多事情,例如从磁盘--流式执行模型,因为张量是惰性的,所以开箱即用。这种设计还使 tinygrad 能够积极地融合操作,最终获得更快的内核。