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