早在 12 月,最初的 AMD Zen 4“znver4”支持就合併到 LLVM/Clang 16 編譯器中。雖然針對這些 AMD 處理器的“-march=znver4”至少翻轉了新添加的 AVX-512 指令,但它重新使用了 Zen 3 中現有的調度程序模型。今天,經過調整的 Zen 4 調度程序模型終於登陸了今年晚些時候將在 LLVM 17 編譯器中找到什麼。

為這些最新的 AMD 處理器調整的 AMD Zen 4“znver4”調度器模型在幾分鐘前被合併到 LLVM Git,而不是在這些新的 Ryzen 7000 系列和 EPYC 9004 上重新使用(不是很準確的)Zen 3 模型系列處理器。調度程序模型主要針對第 4 代 EPYC 9004“熱那亞”處理器進行了調整。

AMD 編譯器工程師 Ganesh Gopalasubramanian 在合併請求中評論說:“該補丁具有 znver4 調度程序模型的細節。與 znver3 相比,在指令、執行單元、延遲和吞吐量方面有很大的改進。 “


新提交是 LLVM 代碼庫的 34,544 行新行——計算新的測試用例和模型本身。遺憾的是,它錯過了將在未來幾天發布的 LLVM 16.0,但現在已合併到 LLVM 17,如果一切順利,它可能會向後移植到 LLVM 16.0 版本。
GCC 13 也將在未來幾週內發布,其 Zen 4 支持由 AMD 和 SUSE 共同開發。對於那些現在想要生產就緒編譯器的人來說,AMD 的 AOCC 4.0 為 LLVM/Clang 的下游提供了強大的 Zen 4 支持。太糟糕了,雖然它是在發布後幾個月才發布的——而且 LLVM 17.0 直到 ~9 月才會發布,除非它被反向移植到 16.0.x 版本——在此調整後的 Znver4 支持準備好優化二進製文件之前Ryzen 7000 系列和 EPYC 9004 系列系統。

考慮到最新的 LLVM 活動以及 GCC 13 的持續改進,我將很快進行一些新的 Zen 4 編譯器基準測試。

Categories: IT Info