AMD Zen 3調度器模型最終被添加到LLVM/Clang中
雖然在最後一分鐘AMD Zen 3 “znver3 “的改進被合併到最近發布的GCC 11當中,但最近首次亮相的LLVM 12.0在Zen 3的支持方面並不那麼幸運。在LLVM 12中,有非常基本的支持,但更完整的支持預計要到今年秋天的LLVM 13中才能實現。
訪問AMD Zen 3調度器模型:
最初的”-march=znver3″支持進入了LLVM 12,但是Zen 3調整的調度器模型依然維持在八字只有一撇的情況(最初的調度器模型更新已經在1月份發布供審查)。直到這個週末,Zen 3調度器模型才在LLVM Git中登陸,用於LLVM 13.0,該版本將在9月~10月以穩定版的形式出現,如果在LLVM 12.0.1版本中對其進行反向移植,則會在這之前出現。
從頭開始建立的全新Zen 3調度器模型依靠LLVM的llvm-mca機器代碼分析器來生成真實的指令,到目前為止,這個新的調度器模型只進行了有限的測試/基準測試,積極的一面是RawSpeed新模型對一些工作負載有所幫主。
本次提交增加了1.43萬行的新代碼,提供了當前的Zen 3模型。不過很遺憾的是,由於時間窗口沒有趕上,無法實現在AMD EPYC 7003系列推出時有良好的開箱即用的編譯器支持,更不用提最好的時機是在去年Ryzen 5000系列推出之前。英特爾方面早在2018年就在GCC和LLVM/Clang中加入了Icelake-Server,並因其在發布前及時啟用開源而受到好評。
LLVM 13.0應該在9月或10月的時間框架內發布(LLVM 13的發布日曆尚未公佈,但他們一年中的第二個版本通常發生在那時),所以我們會看到在這個下一個開源編譯器發布之前,AMD還有哪些優化可能會成為現實。