近日,PyTorch 官方宣布推出无 CUDA 计算的探索,旨在实现大模型推理时不依赖英伟达 CUDA。PyTorch 对各个内核进行了微基准测试比较,并讨论了未来如何进一步改进 Triton 内核以缩小与 CUDA 的差距。Triton 提供了一条途径,使大模型能够在不同类型的 GPU 上运行,包括英伟达、AMD、英特尔和其他基于 GPU 的加速器,并在 Python 中为 GPU 编程提供了更高的抽象层。
在性能测试中,PyTorch 使用了多个大模型,包括 Meta 的 Llama3-8B 和 IBM 的 Granite-8B,测试了这些模型在不同硬件上的推理性能。结果显示,使用 Triton 内核的推理性能在 NVIDIA H100 和 A100 上接近 CUDA,但在 AMD 和英特尔 GPU 上表现更为出色。
为了进一步提升 Triton 内核的性能,PyTorch 团队计划优化矩阵乘法和注意力机制。矩阵乘法是大模型推理中的关键操作,优化这一部分可以显著提升整体性能。注意力机制是 Transformer 模型的核心,优化这一部分可以提高模型的推理速度和准确性。此外,PyTorch 团队还在探索 FP8 推理的可能性。FP8 是一种新的浮点数格式,可以在不显著降低精度的情况下减少内存和计算资源的使用。
在 PyTorch 的官方博客中,展示了如何使用 Triton 内核加速 GPTQ 反量化内核的示例,并提供了一个模板工作流程,帮助开发者更快地实现优化。
在实际应用中,Triton 内核已经被用于多个大模型的推理任务。例如,Meta 的 Llama3-8B 模型在使用 Triton 内核后,推理速度接近 CUDA 的性能。IBM 的 Granite-8B 模型也在 Triton 内核的支持下,实现了高效的 FP16 推理。