前言:
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编译:
待完成...