在Ubuntu上安装OpenBLAS和Eigen

打印 上一主题 下一主题

主题 580|帖子 580|积分 1740

安装 openblas

直接利用 apt-get 命令即可安装:
  1. sudo apt-get install libopenblas-dev
复制代码
检查是否安装乐成,可以用下面的示例代码 example.cpp:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "cblas.h"
  4. int main() {
  5.     const int n = 10;  // Array size
  6.     const double da = 10; // Double constant
  7.     double dx[n]; // Input double array
  8.     double dy[n]; // Output double array
  9.     // Initialize the arrays
  10.     for (int i = 0; i < n; ++i) {
  11.         dx[i] = 9 - i;
  12.         dy[i] = i;
  13.     }
  14.     // Print the original dy array
  15.     printf("Original dy: ");
  16.     for (int i = 0; i < n; ++i) {
  17.         printf("%f ", dy[i]);
  18.     }
  19.     printf("\n");
  20.     // Perform daxpy operation: dy = da * dx + dy
  21.     cblas_daxpy(n, da, dx, 1, dy, 1);
  22.     // Print the modified dy array
  23.     printf("Modified dy: ");
  24.     for (int i = 0; i < n; ++i) {
  25.         printf("%f ", dy[i]);
  26.     }
  27.     printf("\n");
  28.     return 0;
  29. }
复制代码
编译并运行:
  1. ~$ gcc example.cpp -lopenblas -o example
  2. ~$ ./example
  3. Original dy: 0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000
  4. 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
在官网找一个源码下载,解压后安装:
  1. ~$ wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
  2. ~$ tar -zxvf eigen-3.4.0.tar.gz
  3. ~$ mkdir build
  4. ~$ cd build
  5. ~$ cmake ..
  6. ~$ sudo make install
复制代码
eigen3会被默认安装到 /usr/local/include/eigen3 路径下,须要移动到 /usr/local/include 下面:
  1. ~$ sudo mv /usr/local/include/eigen3/* /usr/local/include/
复制代码
然后把 /usr/local/include/eigen3 删除掉:
  1. ~$ sudo rm -rf /usr/local/include/eigen3
复制代码
末了来跑一下官方示例 my_program.cpp:
  1. #include <iostream>
  2. #include <Eigen/Dense>
  3. using Eigen::MatrixXd;
  4. int main()
  5. {
  6.     MatrixXd m(2, 2);
  7.     m(0, 0) = 3;
  8.     m(1, 0) = 2.5;
  9.     m(0, 1) = -1;
  10.     m(1, 1) = m(1, 0) + m(0, 1);
  11.     std::cout << m << std::endl;
  12. }
复制代码
编译运行:
  1. ~$ g++ my_program.cpp -o my_program
  2. ~$ ./my_program
  3.   3  -1
  4. 2.5 1.5
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表