K230 OpenBLAS开发指南
1.OpenBLAS简介
OpenBLAS 是一个基于BSD许可(开源)发行的优化BLAS计算库。BLAS(Basic Linear Algebra Subprograms,基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量 或矩阵乘法),OpenBLAS是BLAS标准的一种具体实现。 在SDK中,已包含预先交叉编译好的OpenBLAS库(位于k230_sdk/src/big/utils/lib/openblas/
路径下),用户直接使用该静态库编译自己的可执行程序即可。
2.测试用例编译
注意:
本节讲解如何通过SDK中预设的OpenBLAS静态库,来进行可执行程序的编译。SDK中已包含多个基于OpenBLAS实现的可执行程序编译示例(位于
k230_sdk/src/big/utils/examples/openblas/
路径下),本节基于这些示例来进行讲解。
k230_sdk/src/big/utils/examples/openblas/
路径下的目录结构说明如下:
|-- 1_openblas_level1 # OpenBLAS示例1
| |-- CMakeLists.txt # OpenBLAS示例1的CMake配置文件
| `-- openblas_level1.cpp
|-- 2_openblas_level2
| |-- CMakeLists.txt
| `-- openblas_level2.cpp
|-- 3_openblas_level3
| |-- CMakeLists.txt
| `-- openblas_level3.cpp
|-- 4_fortran_example
| |-- CMakeLists.txt
| `-- openblas_fortran.cpp
|-- CMakeLists.txt # 总体CMake配置文件
|-- build_app.sh # 总体编译脚本
|-- cmake # 默认CMaek配置
| |-- Riscv64.cmake
| `-- link.lds
首先,在k230_sdk/src/big/utils/examples/openblas/
路径下,运行build_app.sh
文件:
./build_app.sh
在终端中出现如下提示,说明可执行程序编译成功:
Install the project...
-- Install configuration: "Release"
-- Installing: /data/zhanglimin/code_kmodel_export_build_inference_k230/k230_sdk/src/big/utils/examples/openblas/out/bin/1_openblas_level1.elf
-- Installing: /data/zhanglimin/code_kmodel_export_build_inference_k230/k230_sdk/src/big/utils/examples/openblas/out/bin/2_openblas_level2.elf
-- Installing: /data/zhanglimin/code_kmodel_export_build_inference_k230/k230_sdk/src/big/utils/examples/openblas/out/bin/3_openblas_level3.elf
-- Installing: /data/zhanglimin/code_kmodel_export_build_inference_k230/k230_sdk/src/big/utils/examples/openblas/out/bin/4_openblas_fortran.elf
最后,在k230_sdk/src/big/utils/examples/openblas/out/bin
文件夹中即包含了编译好的所有elf文件:
1_openblas_level1.elf
2_openblas_level2.elf
3_openblas_level3.elf
4_openblas_fortran.elf
3.测试用例运行演示
3.1 level_1测试用例
运行方式及输出结果示例如下:
msh /sharefs/bin_openblas>./1_openblas_level1.elf
*********************************************************
This is the result:
4 7 11 14
*********************************************************
This is the reference:
4 7 11 14
{Test PASS}.