Ubuntu16.04安装openBLAS

参考博客:https://www.cnblogs.com/chay/p/10272949.html

cblas_daxpy(_:_:_:_:_:_:):https://developer.apple.com/documentation/accelerate/1513298-cblas_daxpy

Ubuntu16.04安装openBLAS

基本步骤:

 git clone git://github.com/xianyi/OpenBLAS
  cd OpenBLAS
  sudo apt-get install gfortran
  sudo make FC=gfortran
  sudo make install

最后安装在 /opt 下,执行:

ln -s /opt/OpenBLAS/lib/libopenblas.so.0   /usr/lib/libopenblas.so.0

创建一个测试程序:

#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"

int main(){

        int n;                          /*! array size */
        double da;                      /*! double constant */
        double *dx;                     /*! input double array */
        int incx;                        /*! input stride */
        double *dy;                      /*! output double array */
        int incy;                       /*! output stride */

        int i;

        n = 10;
        da = 10;
        dx = (double*)malloc(sizeof(double)*n);
        incx = 1;
        dy = (double*)malloc(sizeof(double)*n);
        incy = 1;

        for(i=0;i<n;i++){
                dx[i] = 9-i;
                dy[i] = i;
                printf("%f ",dy[i]);    //输出原来的dy
        }
        printf("\n");

        cblas_daxpy(n, da, dx,incx, dy, incy);  //运行daxpy程序
    //    cblas_dcopy(n, dx,incx, dy, incy);      //运行dcopy程序

        for(i=0;i<n;i++){
            printf("%f ",dy[i]);   //输出计算后的dy
        }
        printf("\n");

        return 0;   
}  

运行以下命令,生成a.out可执行文件:

gcc test.c  -I /opt/OpenBLAS/include/ -L/opt/OpenBLAS/lib -lopenblas

执行结果:(此处相当于:da*dx[i]+dy[i])

0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 
90.000000 81.000000 72.000000 63.000000 54.000000 45.000000 36.000000 27.000000 18.000000 9.000000