在Ubuntu上安装OpenBLAS和Eigen

安装 openblas

直接使用 apt-get 命令即可安装:

shell 复制代码
sudo apt-get install libopenblas-dev

检查是否安装成功,可以用下面的示例代码 example.cpp:

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"

int main() {
    const int n = 10;  // Array size
    const double da = 10; // Double constant
    double dx[n]; // Input double array
    double dy[n]; // Output double array

    // Initialize the arrays
    for (int i = 0; i < n; ++i) {
        dx[i] = 9 - i;
        dy[i] = i;
    }

    // Print the original dy array
    printf("Original dy: ");
    for (int i = 0; i < n; ++i) {
        printf("%f ", dy[i]);
    }
    printf("\n");

    // Perform daxpy operation: dy = da * dx + dy
    cblas_daxpy(n, da, dx, 1, dy, 1);

    // Print the modified dy array
    printf("Modified dy: ");
    for (int i = 0; i < n; ++i) {
        printf("%f ", dy[i]);
    }
    printf("\n");

    return 0;
}

编译并运行:

shell 复制代码
~$ gcc example.cpp -lopenblas -o example
~$ ./example
Original dy: 0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 
Modified dy: 90.000000 81.000000 72.000000 63.000000 54.000000 45.000000 36.000000 27.000000 18.000000 9.000000

安装 Eigen

Eigen 官网:https://eigen.tuxfamily.org/index.php?title=Main_Page

在官网找一个源码下载,解压后安装:

shell 复制代码
~$ wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
~$ tar -zxvf eigen-3.4.0.tar.gz
~$ mkdir build
~$ cd build
~$ cmake ..
~$ sudo make install

eigen3会被默认安装到 /usr/local/include/eigen3 路径下,需要移动到 /usr/local/include 下面:

shell 复制代码
~$ sudo mv /usr/local/include/eigen3/* /usr/local/include/

然后把 /usr/local/include/eigen3 删除掉:

shell 复制代码
~$ sudo rm -rf /usr/local/include/eigen3

最后来跑一下官方示例 my_program.cpp:

cpp 复制代码
#include <iostream>
#include <Eigen/Dense>

using Eigen::MatrixXd;

int main()
{
    MatrixXd m(2, 2);
    m(0, 0) = 3;
    m(1, 0) = 2.5;
    m(0, 1) = -1;
    m(1, 1) = m(1, 0) + m(0, 1);
    std::cout << m << std::endl;
}

编译运行:

shell 复制代码
~$ g++ my_program.cpp -o my_program
~$ ./my_program
  3  -1
2.5 1.5
相关推荐
apcipot_rain3 小时前
C++转Java日记(04)
java·开发语言·c++
WL学习笔记5 小时前
vector模拟实现
c++
蜗牛一步步往上爬8 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
wo_jack11 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
且从容.11 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道12 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
D e re k ZH12 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
雪落漂泊13 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
不会算法的笨小孩14 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
且从容.15 小时前
ubuntu安装flink
linux·ubuntu·flink