交叉编译Openblas库

下载源码

1
git clone https://github.com/OpenMathLib/OpenBLAS.git

编译

1
2
3
gmake TARGET=ARMV8 BINARY=64 HOSTCC=gcc CC=aarch64-linux-gnu-gcc FC=aarch64-linux-gnu-gfortran

#可以查看Targetlist.txt看支持哪些目标平台

注意

image
出现这种错误,是因为可能存在windows跟unix的脚本转换错误,这里使用dos2unix将系统目录整体处理一边

1
2
dos2unix ./*
dos2unix exports/gensymbol

编译完成

1
2
3
4
5
6
7
8
9
10
 OpenBLAS build complete. (BLAS CBLAS LAPACK LAPACKE)

OS ... Linux
Architecture ... arm64
BINARY ... 64bit
C compiler ... GCC (cmd & version : aarch64-linux-gnu-gcc (Ubuntu 10.5.0-1ubuntu1~22.04) 10.5.0)
Fortran compiler ... GFORTRAN (cmd & version : GNU Fortran (Ubuntu 10.5.0-1ubuntu1~22.04) 10.5.0)
Library Name ... libopenblas_armv8p-r0.3.27.dev.a (Multi-threading; Max num-threads is 20)

To install the library, you can run "make PREFIX=/path/to/your/installation install".

编译benchmark

1
2
cd benchmark
gmake TARGET=ARMV8 BINARY=64 HOSTCC=gcc CC=aarch64-linux-gnu-gcc FC=aarch64-linux-gnu-gfortran

测试

1
2
3
4
5
6
7
8
9
10
11
12
13

#设置循环次数
export OPENBLAS_LOOPS=10000000
export OPENBLAS_PARAM_M=200
export OPENBLAS_PARAM_N=200
export OPENBLAS_PARAM_K=200

#设置线程数量,对于某些测试,不一定生效
export OPENBLAS_NUM_THREADS=4

#测试
./sgemm.goto

作者

Markel

发布于

2024-06-03

更新于

2024-09-18

许可协议

评论