返回
Tilus: A Tile-Level GPGPU Programming Language for Low-Precision Computation
DOI:10.1145/3760250.3762219.png)
摘要
En 中文
为大型语言模型(LLMs)提供服务对AI驱动的应用至关重要,但它需要大量的计算资源,特别是在内存带宽和计算吞吐量方面。低精度计算已作为一种关键技术出现,以提高效率并减少资源消耗。现有用于生成低精度内核的方法仅限于2的幂次权重位宽,且由于高级GPU编程抽象而表现次优。这些抽象限制了关键优化,如细粒度寄存器管理和优化的内存访问模式,这对于高效的低精度计算至关重要。在本文中,我们介绍了Tilus,一种为通用GPU(GPGPU)计算设计的领域特定语言,支持1到8位任意位宽的低精度数据类型,同时保持GPU的可编程性。Tilus具有线程块级编程模型、分层内存空间、新颖的代数布局系统以及对多种低精度数据类型的广泛支持。Tilus程序通过自动向量化指令选择编译成高度高效的GPU程序。大量实验表明,Tilus高效支持全谱低精度数据类型,并优于当前最先进的低精度内核。与现有的编译器如Triton和Ladder以及手动优化的内核如QuantLLM和Marlin相比,Tilus分别实现了1.75倍、2.61倍、1.29倍和1.03倍的性能提升。我们在https://github.com/NVIDIA/tilus上开源了Tilus。
Keyword:
GPU
programming language
parallel computation
low-precision computation
quantization
期刊
机构
引用论文
Efficient Memory Management for Large Language Model Serving with PagedAttention使用PagedAttention服务的大型语言模型的有效内存管理

