marlin

marlin

专为LLM推理设计的FP16xINT4优化内核

Marlin是一款专为LLM推理设计的FP16xINT4优化内核,可实现接近4倍的速度提升,并支持16-32个token的batchsize。通过高效利用GPU资源,如全局内存、L2缓存、共享内存和张量核心,Marlin克服了现代GPU的FLOP和字节比率挑战。多种优化技术包括异步权重加载和双缓冲共享内存加载,确保性能最大化。该项目适用于CUDA 11.8及以上版本,支持NVIDIA Ampere或Ada架构的GPU,并与torch 2.0.0和numpy兼容。在各种基准测试中,Marlin展示了卓越的性能,尤其在持久计算和大batchsize处理方面表现出色。

Marlin高效推理FP16xINT4CUDANVIDIA GPUGithub开源项目

Marlin 项目介绍

项目概览

Marlin 是一款名为混合自回归线性核(Mixed Auto-Regressive Linear kernel)的高效计算核心,同时也以地球上最快的鱼类之一命名。这款核心专注于大语言模型(LLM)推理,其优化的 FP16xINT4 矩阵乘法操作能够在推理时实现接近理想的 4 倍加速,适用于 16-32 个 token 的批次处理,这相比于之前相似加速效果却仅支持 1-2 个 token 的情况,有了显著的提升。Marlin 的这种特性使其非常适合于大规模服务、推测性解码或是复杂的多重推理方案。

关键技术

Marlin 运用了多种技术来同时优化利用 GPU 的全球内存、L2 缓存、共享内存、张量核心和矢量核心,确保性能提升能够在实践中实现:

  • 优化缓存使用:激活函数的计算方式保证多次从寄存器而非共享内存中读取,减轻共享内存的负担。此外,异步执行全局权重加载并立即清除未使用值,避免污染 L2 缓存。
  • 内存加载与计算并行化:采用双缓冲技术将共享内存的加载与全局加载、计算重叠进行,提高运行效率。
  • 高效的指令排序:仔细排列去量化和张量核指令以确保 GPU 管道的饱和度,避免瓶颈。
  • 结构化的数据布局:在执行时以理想的访问模式组织量化权重和组缩放值,促进数据的高效处理。
  • 计算结果聚合与内存优化:通过 "条纹" 分区方案提高计算单元利用率,并在输出缓冲区中直接进行全局化简,结合静态内存偏移,最大化计算效率并最小化冗余读取和写入。

性能表现

Marlin 在 NVIDIA A10 GPU 上测试,与其他流行的 4-bit 推理核心相比,展示了极其强大的性能优势。Marlin 在所有批大小下几乎都达到理想的 3.87 倍加速。即使在较小的矩阵和不同型号的 GPU 上,Marlin 通过其独特的分区策略,仍然保持了突出的速度表现。

长时间运行的性能研究表明,Marlin 即使在基础时钟速度下,其优越性能也未受影响,而其他核心在这种情况下则性能减弱明显。

使用要求

  • CUDA 版本 11.8 或更高(尤其对于 nvcc 编译器,同步 torch 版本)
  • 计算能力 >= 8.0 的 NVIDIA GPU(Ampere 或 Ada 平台)
  • torch>=2.0.0
  • numpy
  • 完整量化流程需要:transformersdatasetssentencepiece

安装与使用

满足上述要求后,可通过以下命令安装 Marlin:

pip install .

安装后,可通过 marlin.Layer(一个表示 Marlin 量化层的 torch 模块)使用 Marlin 核心。此外也可直接通过 marlin.mul(..) 调用核心,前提是权重和缩放值已经适当预处理。相关代码位于 marlin/marlin_cuda_kernel.cu 文件中,不依赖于基础 CUDA 之外的环境,方便集成到其他底层框架中。

核对与测试

可通过以下命令进行正确性测试和基准性能测试:

python test.py # 进行正确性测试 python bench.py # 进行基准测试

留意:为重现可持续性能的基准测试,需要使用以下命令将 GPU 时钟锁定至基础值:

sudo nvidia-smi --lock-gpu-clocks=BASE_GPU_CLOCK --lock-memory-clocks=BASE_MEM_CLOCK

此外,在 A10 GPU 等开启 ECC 的情况下,最大可实现的内存带宽将比官方规格降低10%-15%,可通过以下命令禁用 ECC:

sudo nvidia-smi -e 0

GPTQ 示例

gptq 子目录下,提供了改进的 GPTQ 算法版本,改善了组栅格截断和非均匀校正样本长度,支持生成兼容 Marlin 的 4-bit Llama2 模型。此外,还有脚本可以用来在流行的 LLM 评估工具 中评估这种压缩模型。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

数据安全AI助手热门AI工具AI辅助写作AI论文工具论文写作智能生成大纲
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多