我对所有这些LLM.C的看法是,它非常令人印象深刻,而且Karpathy无疑是才华横溢的,但这在某种程度上是徒劳的,因为LLM.C永远不会像PyTorch那样快速或简单。
这整个“尽可能用最底层语言编写所有东西”的运动有点傻 —— 编译器实际上是好的! —— 虽然具有教育意义,但编写在每个系统上都高效运行的代码需要大量的专业知识,并且需要处理很多边缘情况和优化。
如果你在最快模式下运行torch.compile(“最大自动调优”),它实质上会尝试所有这些功能上等效的低级实现,并对它们进行计时;然后它在最终执行的版本中每一步都采用最快的选项。
这就是编译器能做的事情。因此,如果你自己实现LLM训练,你将学到很多!但是当你对系统进行基准测试,只是为了意识到计算机能够编写比你更快的代码时,不要感到惊讶。