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