網(wǎng)友評分:
5分
畢昇編譯器是針對華為鯤鵬平臺打造的一款超級強大并且好用的高性能編譯軟件,該軟件基于開源LLVM開發(fā),并進行了深度的優(yōu)化和改進,同時將Flang作為默認的Fortran語言前端編譯器,除此之外,其中的工具鏈還對中端及后端的關鍵技術點進行了深度優(yōu)化,并集成Auto-tuner特性,支持編譯器自動調(diào)優(yōu)。
優(yōu)化特性
畢昇編譯器采用多種增強的編譯優(yōu)化技術,包含但不限于以下優(yōu)化特性:
循環(huán)優(yōu)化
包括 Loop Unswitching:減少分支跳轉(zhuǎn)的執(zhí)行次數(shù);Loop unroll-and-jam:改善內(nèi)存和 cache 局部性及利用率;Loop Fusion:直接復用其他循環(huán)中的值,暴露更多的指令調(diào)度機會;Loop Distribution:減少循環(huán)中的寄存器壓力,暴露更多的矢量化機會;Loop Unrolling:可以減少動態(tài)的指令數(shù)量,發(fā)現(xiàn)更多的優(yōu)化機會點,比如數(shù)據(jù)復用,范圍更廣的指令調(diào)度,以及提高矢量化的數(shù)據(jù)并發(fā)度。
內(nèi)存布局優(yōu)化
將結(jié)構體數(shù)組 (AoS) 轉(zhuǎn)換為數(shù)組結(jié)構體 (SoA),以及數(shù)組的重排列優(yōu)化。通過上述方法,將提高 Cache 的命中率,從而提升程序的性能。
軟件預取
畢昇編譯器通過與鯤鵬處理器協(xié)同,將硬件相關特征準確建模,使得編譯器預取分析代碼能夠準確模擬鯤鵬處理器的訪存特征,進而在代碼中插入準確的預取指令,從而提高 Cache 命中率,提升程序的性能。
自動矢量化
結(jié)合鯤鵬 NEON / SVE 指令集,畢昇編譯器對向量自動化進行了增強,將執(zhí)行操作相似的標量化程序轉(zhuǎn)換為向量化程序,從而使計算機程序能夠使用一條指令處理多條數(shù)據(jù),提高程序的性能。
Autotuner
基于 ML 自動搜索技術,通過多次迭代,在可優(yōu)化空間中尋找最優(yōu)的選項,進而編譯出性能更好的目標程序。
LLVM是一種涵蓋多種編程語言和目標處理器的編譯器,畢昇編譯器聚焦于對C、C++、Fortran語言的支持,利用LLVM的Clang作為C和C++的編譯和驅(qū)動程序,F(xiàn)lang作為Fortran語言的編譯和驅(qū)動程序。
C,C++程序
Clang不僅僅是可以將C, C++程序編譯為LLVM中間表示的IR,它也是一個驅(qū)動程序,會調(diào)用所有以代碼生成為目標的LLVM優(yōu)化遍,直到生成最終的二進制文件。畢昇編譯器提供了端到端編譯程序所需的所有工具和庫。
Fortran程序
Flang是專為LLVM集成而設計的Fortran前端,由兩個組件flang1和flang2組成。它也是一個驅(qū)動程序,將源代碼轉(zhuǎn)換為LLVM IR,前端驅(qū)動程序?qū)R傳輸下去進行優(yōu)化和目標代碼生成。
本節(jié)介紹畢昇編譯器的安裝步驟,以下操作均使用root用戶執(zhí)行。
獲取畢昇編譯器軟件包,并校驗完整性后將其上傳到目標執(zhí)行機。
設置安裝目錄
1. 創(chuàng)建畢昇編譯器安裝目錄(這里以/opt/compiler為例)
mkdir -p /opt/compiler
2. 將畢昇編譯器壓縮包拷貝到安裝目錄下:
cp -r bisheng-compiler-1.3.3-aarch64-linux.tar.gz /opt/compiler
進入壓縮包目錄,執(zhí)行命令解壓縮軟件包。解壓完成后在當前目錄下出現(xiàn)名為bisheng-compiler-1.3.3-aarch64-linux的目錄。
tar -zxvf bisheng-compiler-1.3.3-aarch64-linux.tar.gz
配置畢昇編譯器的環(huán)境變量
export PATH=/opt/compiler/bisheng-compiler-1.3.3-aarch64-linux/bin:$PATH
export LD_LIBRARY_PATH=/opt/compiler/bisheng-compiler-1.3.3-aarch64-linux/lib:$LD_LIBRARY_PATH
安裝完畢后執(zhí)行如下命令驗證畢昇編譯器版本:
clang -v
若返回結(jié)果已包含bisheng compiler版本信息,說明安裝成功。
關于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2025 m.virtualinsta360.com.All rights reserved.
浙ICP備2024132706號-1 浙公網(wǎng)安備33038102330474號