編譯 | 蘇宓
出品 | CSDN(ID:CSDNnews)
在高性能計(jì)算動(dòng)輒卷上 AI、大模型和 GPU 加速的今天,還有人在默默手寫匯編代碼,并且——贏了編譯器。
開源且功能強(qiáng)大的音視頻處理工具集 FFmpeg 的開發(fā)者最近又出手了。在他們剛剛提交的一個(gè)補(bǔ)丁中,通過手寫匯編代碼“手搓”了一段關(guān)鍵路徑,成功讓 FFmpeg 一個(gè)功能的性能得到大幅提升。據(jù)稱,達(dá)到了“快 100 倍”的效果。
當(dāng)然,開發(fā)人員隨即也馬上解釋清楚:這不是整個(gè) FFmpeg 都變快了,而是某個(gè)特定的功能模塊,名為 rangedetect8_avx512,在應(yīng)用了手動(dòng)優(yōu)化后獲得了驚人的提速。
而即使你的設(shè)備并不支持新款 AVX512 指令集,使用 rangedetect8_avx2 版本的代碼,也能感受到高達(dá)64% 的性能提升。
迄今為止,只有一個(gè)函數(shù)享受了如此極端的速度提升
很多人可能會(huì)好奇,匯編語言不是早就沒人用了么?
其實(shí)不然。
FFmpeg 就是少數(shù)仍在廣泛使用匯編代碼的“忠實(shí)用戶”之一。他們堅(jiān)持在性能瓶頸處用匯編“手搓優(yōu)化”,效果往往比現(xiàn)代編譯器自動(dòng)生成的指令更高效,甚至“拉開好幾個(gè)數(shù)量級(jí)”。
這一點(diǎn)在他們的實(shí)際成果中體現(xiàn)得淋漓盡致。2023 年 11 月,F(xiàn)Fmpeg 項(xiàng)目曾有一次類似的性能突破,當(dāng)時(shí)某些操作速度提高了94 倍。
而這次的新補(bǔ)丁,更是把 rangedetect8 這一功能的處理速度提升到一個(gè)新的高度。
簡(jiǎn)單來看,rangedetect8 是 FFmpeg 中的一個(gè)視頻過濾器(filter),用于對(duì)圖像中的像素值進(jìn)行“范圍檢測(cè)”。
雖然這個(gè)過濾器是“一個(gè)不太常用的功能”,但它是 SIMD(單指令多數(shù)據(jù)) 指令的絕佳測(cè)試場(chǎng)。手寫匯編的方式,能更精準(zhǔn)地控制 CPU 的指令執(zhí)行方式和寄存器調(diào)度,大幅提升并行處理效率。這些,恰恰是編譯器目前還很難做到的。
正因此,F(xiàn)Fmpeg 在項(xiàng)目推文中對(duì)現(xiàn)代編譯器提出了直言不諱的批評(píng)——“編譯器的寄存器分配器太拉垮了?!?/p>
寄存器的調(diào)度和分配,是性能優(yōu)化中的關(guān)鍵一環(huán)。而現(xiàn)代 C/C++ 編譯器雖然足夠智能,但在一些對(duì)極致性能要求苛刻的場(chǎng)合,手寫匯編依然能拉出一大截差距。
這也是為什么一些高級(jí)性能工具,比如數(shù)據(jù)庫引擎、視頻轉(zhuǎn)碼器、圖像處理庫,至今還保留了手寫匯編路徑,作為“性能保底”的手段。
為什么還有人寫匯編?
回溯到 1980–1990 年代家用計(jì)算機(jī)的黃金時(shí)期,硬件能力有限,內(nèi)存、CPU資源稀缺,程序員幾乎只能靠“榨干每一個(gè)指令周期”來提升性能。那時(shí)候?qū)憛R編,不是情懷,而是生存需要。
而如今,即使資源已經(jīng)極大豐富,但在某些對(duì)性能極度敏感的場(chǎng)景,比如:
嵌入式設(shè)備和硬件驅(qū)動(dòng)
操作系統(tǒng)和編譯器內(nèi)核
安全研究與逆向工程
高性能計(jì)算(HPC)、視頻處理
匯編依然是無法替代的“終極語言”。FFmpeg 項(xiàng)目的開發(fā)人員甚至還為此成立了“匯編優(yōu)化學(xué)?!?,鼓勵(lì)更多開發(fā)者學(xué)習(xí)、傳承這項(xiàng)古老而實(shí)用的技藝。
那么,你對(duì)手寫匯編怎么看?在這個(gè) AI 自動(dòng)生成代碼、LLM 自動(dòng)補(bǔ)齊的時(shí)代,它還值得學(xué)習(xí)嗎?
參考:
https://www.tomshardware.com/software/the-biggest-speedup-ive-seen-so-far-ffmpeg-devs-boast-of-another-100x-leap-thanks-to-handwritten-assembly-code
2025 全球產(chǎn)品經(jīng)理大會(huì)
8月15–16日·北京威斯汀酒店
互聯(lián)網(wǎng)大廠&AI 創(chuàng)業(yè)公司產(chǎn)品人齊聚
12 大專題,趨勢(shì)洞察 × 實(shí)戰(zhàn)拆解
掃碼領(lǐng)取大會(huì) PPT,搶占 AI 產(chǎn)品新紅利
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.