专栏名称: GiantPandaLLM
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
GiantPandaLLM  ·  图解Vllm ... ·  11 小时前  
GiantPandaLLM  ·  【博客转载】Row-Major VS ... ·  昨天  
51好读  ›  专栏  ›  GiantPandaLLM

【翻译】Accelerating Llama3 FP8 Inference with Triton ...

GiantPandaLLM  · 公众号  · 3D  · 2024-08-22 20:49

正文

请到「今天看啥」查看全文


在这篇博客中,我们将介绍如何使用Triton为FP8推理设计一个高效的kernel,并针对Llama3-70B推理进行调优。我们将讨论FP8(8位浮点数),这是Hopper代GPU(SM90)支持的新数据类型,Triton支持的SM90的关键特性,以及我们如何修改并行化以便能够为内存受限(推理)问题规模最大化内存吞吐量。

我们还专门讨论了CUDA Graph,这是一项重要技术,它将有助于实现kernel级别的加速,并使希望在生产环境中使用Triton kernel的开发人员能够获得额外的性能提升。

代码仓库和源码可在以下地址获取:https://github.com/pytorch-labs/applied-ai

2.0 FP8数据类型

FP8数据类型是由Nvidia、Arm和Intel联合推出的,作为16位浮点类型的继承者。由于位数减半,它有潜力为Transformer网络提供比其前身显著的吞吐量改进。FP8数据类型包含两种格式:

E4M3 (4位指数和3位尾数)。能够存储+/-448和NaN(非数值)。 E5M2 (5位指数和2位尾数)。能够存储  +/-57,334、NaN(非数值)和inf(无穷大)。

我们在推理和前向传播训练中使用E4M3,因为它具有更高的精度;在反向传播训练中使用E5M2,因为它具有更高的动态范围。Nvidia已经设计了他们的H100 FP8 Tensor Core,可以提供高达3958 TFLOPS的峰值性能,是FP16 Tensor Core的 2倍 FLOPS。

我们在设计Triton kernel时考虑了这些硬件创新,在博客的其余部分,我们将讨论利用这些特性的方法,并验证这些特性确实被Triton编译器所使用。







请到「今天看啥」查看全文