1. 程式人生 > >Mips平臺kaldi原始碼的交叉編譯一OpenBlas及Clapack的交叉編譯

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編譯:

待完成...