Mips平臺kaldi原始碼的交叉編譯一OpenBlas及Clapack的交叉編譯
前言:
OpenBlas是一款開源的矩陣運算庫,具體介紹參考http://www.openblas.net/ 。在linux PC上,即訓練時,採用的數學矩陣庫為atlas,此數學庫未開源,在linux中只提供lib庫,所以在嵌入式平臺中,我們需要編譯openblas生成對應的數學矩陣庫。
除OpenBlas外,kaldi還需要線性代數的庫,即Clapack。
OpenBlas下載:
Github: git clone https://github.com/xianyi/OpenBLAS.git
OpenBlas編譯:
1. 首先檢視TargetList.txt,選擇你要編譯的平臺架構,我使用的mips是一款國產晶片,在TargetList.txt中沒有該選項,選擇一個接近的P5600
2. 修改 Makefile.system 檔案
ifeq ($(CORE), P5600) #CCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS) #FCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS) CCOMMON_OPT += -mips32r2 -mtune=mips32r2 -mhard-float $(MSA_FLAGS) FCOMMON_OPT += -mips32r2 -mtune=mips32r2 -mhard-float $(MSA_FLAGS) endif
3. 修改 Makefile.prebuild 檔案
ifeq ($(TARGET), P5600)
#TARGET_FLAGS = -mips32r5
TARGET_FLAGS = -mips32r2
endif
4. 執行命令 : make BINARY=32 BINARY32=1 CC=mips-linux-gnu-gcc FC="mips-linux-gnu-gfortran -EL" RANLIB=mips-linux-gnu-ranlib AR=mips-linux-gnu-ar HOSTCC=gcc CFLAGS="-EL" FFLAGS=$CFLAGS LDFLAGS=$CFLAGS TARGET=P5600 ONLY_CBLAS=1 USE_THREAD=0
下圖證明編譯成功
5. make PREFIX=./install/ install
以上,openblas編譯完成,生成的庫在目錄: OpenBLAS/install/
-------------------------------------------------------------------------------------------------------------------------------------------------------
下面介紹Clapack相關的編譯方法
Clapack下載:
Clapack編譯:
待完成...