自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Llama提速500%!谷歌美女程序員手搓矩陣乘法內(nèi)核

人工智能
近日,天才程序員Justine Tunney發(fā)推表示自己更新了Llamafile的代碼,通過手搓84個(gè)新的矩陣乘法內(nèi)核,將Llama的推理速度提高了500%!

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

近日,天才程序員Justine Tunney發(fā)推表示自己更新了Llamafile的代碼,

圖片圖片

她重寫了84個(gè)新的矩陣乘法內(nèi)核,使得Llamafile可以更快地讀取提示和圖像。

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

圖片圖片

其中,ARMv8.2+(如RPI 5)、Intel(如Alderlake)和AVX512(如Zen 4)計(jì)算機(jī)的改進(jìn)最為顯著。

另外,對于適合L2緩存的矩陣,新的內(nèi)核比MKL快2倍!

圖片圖片

Justine Tunney表示:負(fù)責(zé)MKL的大家,你們有事做了!

畢竟,由微軟,英特爾,TI,AMD,HPE,Oracle,Huawei,F(xiàn)acebook,ARM和National Science Foundation資助的BLIS,作為最強(qiáng)大的開源BLAS,輸了就太沒面子了!

Any time somebody outside Intel beats MKL by a nontrivial amount, I report it to the MKL team. It is fantastic for any open-source project to get within 10% of MKL... [T]his is why Intel funds BLIS development.

每當(dāng)英特爾以外的人以不小的幅度擊敗MKL時(shí),我都會(huì)向MKL團(tuán)隊(duì)報(bào)告。對于任何開源項(xiàng)目,超過MKL 10%以內(nèi)就已經(jīng)非常厲害了......這就是英特爾為BLIS開發(fā)提供資金的原因。

跨平臺(tái)的「羊駝」

Llamafile作為一個(gè)本地LLM項(xiàng)目,誕生于去年11月,由Justine Tunney與Mozilla團(tuán)隊(duì)合作開發(fā)。

他們使用Cosmopolitan Libc,將llama.cpp打包為一個(gè)跨平臺(tái)的單個(gè)二進(jìn)制文件,讓「羊駝」可以在基于AMD64和ARM64的六個(gè)操作系統(tǒng)上運(yùn)行。

而且在GPU短缺的情況下,Llamafile可以不需要昂貴的CUDA內(nèi)核,——家里的舊CPU,只要性能還行,再加一點(diǎn)RAM就足夠了,很好地保護(hù)了大家的錢包。

圖片圖片

項(xiàng)目地址:https://github.com/Mozilla-Ocho/llamafile/releases

Llamafile代碼可以在GitHub上找到,使用C++編寫的,沒有外部依賴,可以在Linux、macOS、Windows、FreeBSD,甚至SerenityOS上編譯。

而且,Justine Tunney并沒有就此止步。她已經(jīng)在努力支持新的數(shù)據(jù)格式,比如FP16和BF16,以進(jìn)一步減少內(nèi)存占用,——她甚至在Raspberry Pi上成功運(yùn)行了TinyLlama!

性能提升

老惠普

Justine Tunney最開始嘗試LLM時(shí),用的是下面這臺(tái)簡陋的HP主機(jī),運(yùn)行Alpine,機(jī)械硬盤、慢速RAM、AVX2處理器、沒有 GPU。

圖片圖片

HP Intel? Core? i9-9900 ($439) w/ 2200 MT/s RAM

出于對llama.cpp的喜愛,Justine Tunney與人合作為其引入了mmap()支持,使得權(quán)重可以立即加載,只使用原來一半的RAM。

之后,Justine又花了很長的時(shí)間來優(yōu)化代碼,讓我來看一下改進(jìn)后的效果:

圖片圖片

在Skylake上,llamafile實(shí)現(xiàn)了2倍的加速,llama.cpp也獲得了50%的性能提升。

到目前為止,Justine為q8_0、f16、q4_1、q4_0和f32數(shù)據(jù)類型編寫了優(yōu)化的內(nèi)核。

樹莓派

最新版的樹莓派不僅提升了主頻,還引入了對ARMv8.2 dotprod 和fp16算術(shù)ISA的支持,僅這兩個(gè)功能就讓llama.cpp在f16權(quán)重上實(shí)現(xiàn)了10倍性能提升。

圖片圖片

因?yàn)闃漭傻膬蓚€(gè)CPU都有32個(gè)矢量寄存器,Justine使用為AVX512編寫的內(nèi)核,使推理速度又提高了2倍。

圖片圖片

不過值得注意的是,新的ARMv8.2 fp16 ISA可能會(huì)引入比平時(shí)更多的錯(cuò)誤,因?yàn)樗鼤?huì)導(dǎo)致llamafile使用fp16。因此,Q8_0權(quán)重實(shí)際上的效果更好,因?yàn)樗褂胐otprod ISA。

游戲主機(jī)

在Alderlake CPU上,Justine將float16的性能提高了五倍。

圖片圖片

與ARMv8.2不同,Alderlake能夠在不引入舍入錯(cuò)誤的情況下做到這一點(diǎn),因?yàn)閮?nèi)核在內(nèi)部使用float32計(jì)算類型。

另外讓人吃驚的是,當(dāng)涉及到小工作負(fù)載時(shí),這個(gè)芯片甚至能夠在CUDA開始之前就完成任務(wù)。

圖片圖片

蘋果

Mac Studio,作為llama.cpp開發(fā)人員最關(guān)心的硬件平臺(tái),想要在這里提升性能比較困難。

圖片圖片

另一個(gè)問題則是蘋果自身的封閉環(huán)境:

M2 Ultra將RAM DIMM放在了CPU內(nèi)部,使得token生成等受延遲限制的操作速度更快,因?yàn)镃PU不再需要打「長途電話」了。

圖片圖片

我們可以看到,與便宜得多的英特爾計(jì)算機(jī)相比,M2 Ultra僅通過ARM ISA暴露了30%的計(jì)算能力。

如果開發(fā)者想訪問更多內(nèi)容,則需要通過蘋果的專有框架,例如Metal和Accelerate。

AMD

雖然llamafile非常關(guān)心幫助缺乏GPU的人,但也為另外1%的人提供了一流的體驗(yàn)。

圖片圖片

AMD Ryzen Threadripper PRO 7995WX,通過花費(fèi)10,000美元左右,你會(huì)得到96個(gè)基于Zen4架構(gòu)的AVX512內(nèi)核。

盡管價(jià)格只有M2 Ultra的兩倍,但7995WX x86 ISA提供的原始計(jì)算能力是M2 Ultra ARM ISA的7倍,token生成速度幾乎相同,這可能要?dú)w功于384M的L3緩存。

圖片圖片

通過Justine的優(yōu)化,現(xiàn)在可以在Zen4上以2.8倍的速度運(yùn)行LLaMA。

天才程序員

圖片圖片

Justine Tunney出生于1984年,14歲就開始幫別的黑客開發(fā)軟件,當(dāng)時(shí)的綽號(hào)是「Oogle」。

我們來淺淺地看一下她這些年的一些工作:

RedBean

一個(gè)web服務(wù)器,神奇的是可以跨平臺(tái)在6種操作系統(tǒng)上運(yùn)行!

圖片圖片

這可不是Java那種疊了一層虛擬機(jī)的機(jī)制,Justine開發(fā)了一種叫做APE(Acctually Portable Executbale)的文件格式,可以在任何x86-64的操作系統(tǒng)上執(zhí)行。

「一次編譯,處處運(yùn)行」——Java:嗯?這不是我嗎?

cosmopolitan libc

為了能夠跨平臺(tái)調(diào)用外部程序,比如c標(biāo)準(zhǔn)庫,Justine直接手搓了一個(gè)libc,在各種平臺(tái)上實(shí)現(xiàn)了所有需要的核心操作:

圖片圖片

看一下上面的工作量,實(shí)在是太炸裂了,而且一般人就算想肝,沒有實(shí)力也是不可能的。

sectorLisp

僅有512個(gè)字節(jié),最小的Lisp實(shí)現(xiàn),可通過BIOS引導(dǎo)啟動(dòng):

圖片圖片

除了上面這幾個(gè),還有諸如Blinkenlights、RoseHub等天才項(xiàng)目,這里不再一一列舉。

對于這番成就,有網(wǎng)友感嘆道:

圖片圖片

Every time I read something by Justine Tunney, I am continually reminded of my mediocrity.

對于之前提到的mmap工作,網(wǎng)友評價(jià):「有Fabrice Bellard之風(fēng)」。

Justine Tunney is a true genius. Similar to Fabrice Bellard, a truly unique mind.

Justine or Fabrice are the true 10x engineers, their output is world class and they are much rarer than any hiring article about these gurus want us to believe. With Justine's work, I feel  would need to be more than a 1x engineer myself just to find the time to play with all of her creations.

2012年,Justine Tunney開始在谷歌工作,并負(fù)責(zé)了一些知名項(xiàng)目的關(guān)鍵部分。

圖片圖片

比如大名鼎鼎的TensorFlow,Tunney為這個(gè)項(xiàng)目做出了許多貢獻(xiàn),包括用于存儲(chǔ)數(shù)據(jù)的摘要系統(tǒng)。

Bazel是谷歌從Make演變而來的PB級構(gòu)建系統(tǒng),Tunney的主要貢獻(xiàn)是下載器代碼部分,用于自動(dòng)化運(yùn)營商級公共工件傳輸。

圖片圖片

Nomulus是一項(xiàng)用于管理頂級域名的服務(wù),是谷歌的第一個(gè)開源生產(chǎn)服務(wù)。Tunney負(fù)責(zé)為其編寫注冊表數(shù)據(jù)托管系統(tǒng)。

參考資料:https://twitter.com/JustineTunney/status/1774621341473489024

責(zé)任編輯:武曉燕 來源: 新智元
相關(guān)推薦

2011-03-03 17:56:40

程序員美女

2012-07-18 08:22:11

梅耶爾

2019-11-28 10:53:19

程序員技能開發(fā)者

2018-09-06 13:06:46

程序員焦慮谷歌

2019-04-16 14:03:47

編程程序員代碼

2013-03-06 09:50:02

程序員搜索

2022-12-07 10:21:19

谷歌搜索技巧

2013-08-20 09:33:59

程序員

2012-03-06 09:22:46

程序員

2009-05-21 15:58:12

程序員工作經(jīng)驗(yàn)職場

2014-04-18 14:32:31

美女程序員Android開發(fā)者

2023-04-17 21:48:00

OpenAIAI

2011-05-13 14:34:02

程序員

2013-05-31 13:03:28

2015-04-10 19:37:34

程序員

2022-03-16 11:10:19

程序員社區(qū)技術(shù)

2013-07-12 10:58:16

程序員

2015-08-25 08:26:39

IT公司程序員鼓勵(lì)師

2011-01-04 16:35:52

機(jī)器語言

2015-09-15 09:14:10

程序員經(jīng)驗(yàn)教訓(xùn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)