信息

实验简介

gcc

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。本试验学习了这个编译器的使用。

OpenBLAS

OpenBLAS 是一个开源的矩阵计算库,包含了诸多的精度和形式的矩阵计算算法。本实验实现了在 Linux gcc 编译器下对这个矩阵库的使用,以及实现了这个矩阵库的矩阵乘法的运行效率和普通矩阵乘法的比较。

Linux 下 gcc 的使用

当我们编译生成一个可执行文件时,我们一般直接执行: gcc -o test test.c 。这个命令将直接在当前目录生成一个 test 可执行文件,不留下任何其他文件。 ./test 即可执行这个文件。

但是,这个编译过程的中间细节是什么样呢?我们可以手动通过改变编译参数的方式改变 GCC 的编译过程,使之生成一系列中间文件。命令如下:

  1. gcc -E test.c -i -o test.i :生成预处理文件
  2. gcc -S test.i -o test.S :根据预处理文件生成汇编码
  3. gcc -c test.S -o test :根据汇编码汇编成链接文件
  4. gcc test.o -o test :把链接文件链接成为可执行文件

OpenBLAS 的编译和使用

GitHub - xianyi/OpenBLAS: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

OpenBLAS 开源于:https://github.com/xianyi/OpenBLAS

编译方式很简单,在源码根目录执行 make 即可编译生成二进制链接库, make install PREFIX=<安装目录> 即可安装文件到指定目录。我这里安装到 /usr/share/openblas

但是 make install 之后,GCC可能仍然找不到文件。我们需要把这些文件再添加到系统的目录中。

# 软链接到系统的 lib 目录
ln -s /usr/share/openblas/lib/libopenblas.so /usr/local/lib/libopenblas.so
# 让 CMake 找到依赖文件
ln -s /usr/share/openblas/lib/cmake/openblas openblas