llama3.cuda 是使用 纯C/cuda 完成的代码,连接是:https://github.com/likejazz/llama3.cuda
主要特点是:
- 无依赖性
它简单、可读且无依赖性,可确保随时随地轻松编译。支持 Makefile 和 CMake。 - 没有 C++
它是一个不使用 C++ 的纯 C 实现,大多数值都被视为指针。 - 一个文件
即使包含大量样板代码,例如 UTF-8 字节序列处理,它也将整个代码保持在单个文件中的 900 行以下。 - 相同的结果
为了获得与 NumPy 实现完全相同的结果,我手动调试了 logit 值以降低浮点运算错误率,并将错误率降低到 0.5% 以下。 - 高性能
虽然 M2 MacBook Air 上的 NumPy 实现处理了 33 个令牌/秒,但 CUDA 版本在 NVIDIA 4080 SUPER 上处理了 2,823 个令牌/秒,速度大约快了 85 倍。这个实验真正证明了为什么我们应该使用 GPU。