本文主要是在編譯AI處理器編譯器的過程說明及遇到的問題整理
這是我入職以後的學習筆記,已經屏蔽了所有和商業有關的關鍵字,若造成影響請告知。
準備
-
ssh到工作節點,安全性輸入yes,密碼輸入自己賬戶密碼。
-
注意,代碼開發工作要放到
/自己用戶名路徑/
下邊。 -
需要配置環境變量:
source /arm/tools/setup/init/tcsh
module load core platform/lsf/10.1sp4
module load core arm/cluster/2.0
module load eda synopsys/scl/2017.12
module load swdev python/python/3.6.1
module load swdev
module load gnu/gcc/7.3.0
setenv PATH /usr/local/cuda/bin:/usr/local/cuda/lib64:/自己用戶名路徑/workarea/tools/gdb-8.3/bin:/自己用戶名路徑/workarea/tools/cmake-3.14.4/bin:/自己用戶名路徑/workarea/tools/python/bin:$PATH
setenv LD_LIBRARY_PATH /usr/local/cuda/lib64:/自己用戶名路徑/workarea/tools/gdb-8.3/lib:/自己用戶名路徑/workarea/tools/gcc-8.1.0/lib:/自己用戶名路徑/workarea/tools/gcc-8.1.0/lib64:$LD_LIBRARY_PATH
Setenv CC which gcc
Setenv CXX which g++
Setenv PYTHONE which python
編譯命令
-
configuration
cmake ../src/ -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="AIPU"
-
make
make
遇到的問題
-
使用
make -j
選項編譯之後,編譯失敗,提示:g++ error: vfork resource temporarily unavailable
.未解決:初步估計應該是我賬戶權限不足,當啓動多線程加速編譯時,會提示資源受限,使用
make
進行編譯,不會出現這樣的問題,但是編譯非常慢。初步解決:使用
-j
選項是表示使用最多的線程進行工作,當我使用make -j 4
時,使用4線程編譯通過。 -
編譯之後,生成
clang-8
,使用該編譯器對c程序進行編譯,提示:`error: unable to create target: ‘No available targets are compatible with triple"x86_64-unknown-linux-gnu"’解決:編譯器運行未指定target,應該按以下方式運行:
./clang --target=aipu -emit-llvm -S test.c
: 這樣生成的是.ll後綴文件./clang --target=aipu -O0 -S test.c
: 這樣生成的是彙編文件