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

编辑推荐精选

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自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多