首页 > AI教程资讯 >Llama提速500%!谷歌美女程序员手搓矩阵乘法内核

Llama提速500%!谷歌美女程序员手搓矩阵乘法内核

2025-08-2802ai门户网

编辑:alan

【本站导读】近日,天才程序员JustineTunney发推表示自己更新了Llamafile的代码,通过手搓84个新的矩阵乘法内核,将Llama的推理速度提高了500%!

谷歌的美女程序员,将Llama的推理速度提高了500%!

近日,天才程序员JustineTunney发推表示自己更新了Llamafile的代码,

她重写了84个新的矩阵乘法内核,使得Llamafile可以更快地读取提示和图像。

与llama.cpp相比,新的Llamafile在CPU上的推理速度提升了30%到500%。

其中,ARMv8.2+(如RPI5)、Intel(如Alderlake)和AVX512(如Zen4)计算机的改进最为显著。

另外,对于适合L2缓存的矩阵,新的内核比MKL快2倍!

JustineTunney表示:负责MKL的大家,你们有事做了!

毕竟,由微软,英特尔,TI,AMD,HPE,Oracle,Huawei,Facebook,ARM和NationalScienceFoundation资助的BLIS,作为最强大的开源BLAS,输了就太没面子了!

AnytimesomebodyoutsideIntelbeatsMKLbyanontrivialamount,IreportittotheMKLteam.Itisfantasticforanyopen-sourceprojecttogetwithin10%ofMKL…[T]hisiswhyIntelfundsBLISdevelopment.

每当英特尔以外的人以不小的幅度击败MKL时,我都会向MKL团队报告。对于任何开源项目,超过MKL10%以内就已经非常厉害了……这就是英特尔为BLIS开发提供资金的原因。

跨平台的「羊驼」

Llamafile作为一个本地LLM项目,诞生于去年11月,由JustineTunney与Mozilla团队合作开发。

他们使用CosmopolitanLibc,将llama.cpp打包为一个跨平台的单个二进制文件,让「羊驼」可以在基于AMD64和ARM64的六个操作系统上运行。

而且在GPU短缺的情况下,Llamafile可以不需要昂贵的CUDA内核,——家里的旧CPU,只要性能还行,再加一点RAM就足够了,很好地保护了大家的钱包。

项目地址:https://github.com/Mozilla-Ocho/llamafile/releases

Llamafile代码可以在GitHub上找到,使用C++编写的,没有外部依赖,可以在Linux、macOS、Windows、FreeBSD,甚至SerenityOS上编译。

而且,JustineTunney并没有就此止步。她已经在努力支持新的数据格式,比如FP16和BF16,以进一步减少内存占用,——她甚至在RaspberryPi上成功运行了TinyLlama!

性能提升

老惠普

JustineTunney最开始尝试LLM时,用的是下面这台简陋的HP主机,运行Alpine,机械硬盘、慢速RAM、AVX2处理器、没有GPU。

HPIntel®Core™i9-9900($439)w/2200MT/sRAM

出于对llama.cpp的喜爱,JustineTunney与人合作为其引入了mmap()支持,使得权重可以立即加载,只使用原来一半的RAM。

之后,Justine又花了很长的时间来优化代码,让我来看一下改进后的效果:

在Skylake上,llamafile实现了2倍的加速,llama.cpp也获得了50%的性能提升。

到目前为止,Justine为q8_0、f16、q4_1、q4_0和f32数据类型编写了优化的内核。

树莓派

最新版的树莓派不仅提升了主频,还引入了对ARMv8.2dotprod和fp16算术ISA的支持,仅这两个功能就让llama.cpp在f16权重上实现了10倍性能提升。

因为树莓派的两个CPU都有32个矢量寄存器,Justine使用为AVX512编写的内核,使推理速度又提高了2倍。

不过值得注意的是,新的ARMv8.2fp16ISA可能会引入比平时更多的错误,因为它会导致llamafile使用fp16。因此,Q8_0权重实际上的效果更好,因为它使用dotprodISA。

游戏主机

在AlderlakeCPU上,Justine将float16的性能提高了五倍。

与ARMv8.2不同,Alderlake能够在不引入舍入错误的情况下做到这一点,因为内核在内部使用float32计算类型。

另外让人吃惊的是,当涉及到小工作负载时,这个芯片甚至能够在CUDA开始之前就完成任务。

苹果

MacStudio,作为llama.cpp开发人员最关心的硬件平台,想要在这里提升性能比较困难。

另一个问题则是苹果自身的封闭环境:

M2Ultra将RAMDIMM放在了CPU内部,使得token生成等受延迟限制的操作速度更快,因为CPU不再需要打「长途电话」了。

我们可以看到,与便宜得多的英特尔计算机相比,M2Ultra仅通过ARMISA暴露了30%的计算能力。

如果开发者想访问更多内容,则需要通过苹果的专有框架,例如Metal和Accelerate。

AMD

虽然llamafile非常关心帮助缺乏GPU的人,但也为另外1%的人提供了一流的体验。

AMDRyzenThreadripperPRO7995WX,通过花费10,000美元左右,你会得到96个基于Zen4架构的AVX512内核。

尽管价格只有M2Ultra的两倍,但7995WXx86ISA提供的原始计算能力是M2UltraARMISA的7倍,token生成速度几乎相同,这可能要归功于384M的L3缓存。

通过Justine的优化,现在可以在Zen4上以2.8倍的速度运行LLaMA。

天才程序员

JustineTunney出生于1984年,14岁就开始帮别的黑客开发软件,当时的绰号是「Oogle」。

我们来浅浅地看一下她这些年的一些工作:

RedBean

一个web服务器,神奇的是可以跨平台在6种操作系统上运行!

这可不是Java那种叠了一层虚拟机的机制,Justine开发了一种叫做APE(AcctuallyPortableExecutbale)的文件格式,可以在任何x86-64的操作系统上执行。

「一次编译,处处运行」——Java:嗯?这不是我吗?

cosmopolitanlibc

为了能够跨平台调用外部程序,比如c标准库,Justine直接手搓了一个libc,在各种平台上实现了所有需要的核心操作:

看一下上面的工作量,实在是太炸裂了,而且一般人就算想肝,没有实力也是不可能的。

sectorLisp

仅有512个字节,最小的Lisp实现,可通过BIOS引导启动:

除了上面这几个,还有诸如Blinkenlights、RoseHub等天才项目,这里不再一一列举。

对于这番成就,有网友感叹道:

EverytimeIreadsomethingbyJustineTunney,Iamcontinuallyremindedofmymediocrity.

对于之前提到的mmap工作,网友评价:「有FabriceBellard之风」。

JustineTunneyisatruegenius.SimilartoFabriceBellard,atrulyuniquemind.

JustineorFabricearethetrue10xengineers,theiroutputisworldclassandtheyaremuchrarerthananyhiringarticleabouttheseguruswantustobelieve.WithJustine’swork,Ifeelwouldneedtobemorethana1xengineermyselfjusttofindthetimetoplaywithallofhercreations.

2012年,JustineTunney开始在谷歌工作,并负责了一些知名项目的关键部分。

比如大名鼎鼎的TensorFlow,Tunney为这个项目做出了许多贡献,包括用于存储数据的摘要系统。

Bazel是谷歌从Make演变而来的PB级构建系统,Tunney的主要贡献是下载器代码部分,用于自动化运营商级公共工件传输。

Nomulus是一项用于管理顶级域名的服务,是谷歌的第一个开源生产服务。Tunney负责为其编写注册表数据托管系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表本站立场。文章及其配图仅供学习分享之

8983
128

同类推荐更多

有哪些稳定的海外影视网站推荐

有哪些稳定的海外影视网站推荐

最火的AI教程资讯

2025-01-07

有哪些稳定的海外影视网站推荐_映技派,专注ai人工智能!,在寻找免费的影视网站时,有许多优秀稳定的海外影视网站可以选择,以下是一些针对海外观众推荐的影视网站,适合观看电影和电视剧。