CompilerDev 板


LINE

前幾天GCC社群有個不小的新聞:新的 "-fparallel-job=<N>" 選項可以讓編譯流程 本身平行化 有別於許多近代 build system 早已提供的檔案層級平行化(i.e. 把個別檔案的編譯工作 都到獨立的一個thread) 編譯器本身的平行化(i.e.把編譯器內部的工作平行化)一直以來都沒有登上 主流 因此我聽到這個消息以後非常的興奮 事實上這個計畫大概在去年底就有個雛形了: https://youtu.be/jd6R3IK__1Q
我也會就這個影片做講解(P.S.雖然內容很讚但這個演講本身的品質...有待加強XD) 這個計畫最大的動機是大型檔案的編譯速度太慢 同時也是前述build system檔案層級平行化無法解決的問題 如果把GCC各部分(e.g. frontend, backend)的處理時間攤開來看 可以得到以下分佈: https://imgur.com/35KzIRj 其中很明顯的RTL,也就是backend/code generation的部分花最多時間 第二多的則是target independent、intra-procedural的優化與analyses (也就是GIMPLE) 雖然RTL佔的時間最多 但該計畫的作者認為 GIMPLE 比較好改 所以就先嘗試將每個function丟到獨立的thread裡面做 GIMPLE 優化 https://imgur.com/bpah6Q4 當然就如影片裡面所示 有一堆全域的資料結構因為race condition的緣故要修改 最終實驗結果如下: https://imgur.com/Blb6Tye 5~6%的加速...雖然已經很好了 但如果把這項技術也用在RTL上的話... https://imgur.com/wD9422B 30~60%的加速 這個就真的蠻驚人了 雖然我很想吐槽:繞了一大圈你還不是要平行化RTL (笑 ======== 即便得到了一個如此亮眼的數字 我想最大的問題在於: 通常你有一個超超超大的檔案 你會想直接把他切小一點 而不是那麼費工地平行化編譯器 我認為並不是這想法本身有問題 而是因為用multi-threading本身的overhead還蠻大的 所以你的檔案真的要超級超級大 用這個技術才划得來 但如果如此的大 就像上面所說的:直接切小一點會比較快 又或者是說:會產生如此大檔案的情況少之又少 這種corner case 真的值得你花那麼多 時間去研究以及維護嗎?別忘了GCC是一個持續成長的開源專案 如果這項技術導致以後 一些更重要的功能難以實作 難保不會有人質疑這技術的必要性 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 169.234.228.215 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/CompilerDev/M.1598206736.A.EF3.html
1F:推 heap5566: 弱弱的問一句 跟原本的-j4 差在哪裡啊? 08/24 08:01
2F:推 NYCU: make -j4是在Makefile有多個獨立工作的情況下平行 08/24 11:23
3F:→ NYCU: e.g. 對多個不同的.c檔gcc 最後再link多個.o檔 08/24 11:25
4F:→ Lipraxde: 還是有需要的吧?寫 template、header only 等都可能會 08/24 21:23
5F:→ Lipraxde: 讓 code 膨脹。若說是大檔案的話,拆散後為了效能去開 08/24 21:23
6F:→ Lipraxde: LTO 不也有點奇怪? 08/24 21:23
對吼有道理 差點都忘了template所造成的潛在code size膨脹 ※ 編輯: mshockwave (169.234.228.215 美國), 08/25/2020 11:24:52
7F:推 JameC: -j4 應該就是一開始講的、檔案層級的平行化吧? 08/26 16:52
8F:推 akasan: gcc的global var 真的多到哭爸... 08/30 11:24







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP