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 评估工具 中评估这种压缩模型。

编辑推荐精选

商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

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

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
下拉加载更多