Facebook 使用機(jī)器學(xué)習(xí)優(yōu)化編譯器
Facebook 近日宣布了 CompilerGym 項(xiàng)目,這是一個(gè)用于執(zhí)行編譯器優(yōu)化任務(wù)的高性能、易于使用的強(qiáng)化學(xué)習(xí) (Reinforcement Learning, RL) 環(huán)境庫,用于解決生產(chǎn)環(huán)境中的編譯器優(yōu)化問題。
CompilerGym 由 Facebook 的 AI 團(tuán)隊(duì)在 OpenAI Gym 之上構(gòu)建,并最終致力于幫助提高代碼編譯器的性能。他們?cè)诠嬷斜硎荆?ldquo;CompilerGym 對(duì)重要的編譯器優(yōu)化問題進(jìn)行了打包,并使它們看起來像強(qiáng)化學(xué)習(xí)問題。我們引入的編譯器優(yōu)化問題規(guī)模很大。例如搜索空間為 104461,遠(yuǎn)大于圍棋的搜索空間。但另一方面,搜索空間又是無限的。得益于強(qiáng)化學(xué)習(xí)的最新進(jìn)展,這種規(guī)模的問題第一次有可能取得進(jìn)展。CompilerGym 讓任何具有 ML 或編譯器背景的人都可以輕松地直接投入并開始解決問題,而無需花費(fèi)通常需要的數(shù)月繁瑣配置時(shí)間。這是因?yàn)槲覀円呀?jīng)為你完成了這些工作!”
開發(fā)團(tuán)隊(duì)還補(bǔ)充道,“我們的目標(biāo)是成為通過 ML 讓編譯器速度更快的催化劑,因?yàn)槌绦蛉绻麅?yōu)化不當(dāng)會(huì)非常慢,并且消耗過多的計(jì)算資源和能源,限制了節(jié)能邊緣設(shè)備的應(yīng)用,使數(shù)據(jù)中心不那么環(huán)保。”
據(jù)介紹,在此項(xiàng)目的第一個(gè)版本中,F(xiàn)acebook 為三個(gè)編譯器問題提供了強(qiáng)化學(xué)習(xí)環(huán)境: 使用 LLVM 進(jìn)行相位排序、使用 GCC 調(diào)整 flag,以及使用 CUDA 循環(huán)嵌套生成。他們還提供了用于訓(xùn)練的大量程序數(shù)據(jù)集、驗(yàn)證結(jié)果可重復(fù)性的腳本、公共記分榜和 Web 前端。隨著時(shí)間的推移,他們計(jì)劃為其他成熟的編譯器問題提供支持,包括寄存器分配、窺孔優(yōu)化 (peephole optimization) 和循環(huán)優(yōu)化。開發(fā)團(tuán)隊(duì)還希望增加更多的任務(wù)、獎(jiǎng)勵(lì)、觀察和行動(dòng),旨在通過這些舉動(dòng)讓編譯器和 ML 研究社區(qū)更加緊密地聯(lián)系在一起。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Facebook 使用機(jī)器學(xué)習(xí)優(yōu)化編譯器
本文地址:https://www.oschina.net/news/163236/facebook-compiler-gym