当前位置: 首页 > news >正文

在Ubuntu上安装OpenBLAS和Eigen

安装 openblas

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

sudo apt-get install libopenblas-dev

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

#include <stdio.h>
#include <stdlib.h>
#include "cblas.h"int main() {const int n = 10;  // Array sizeconst double da = 10; // Double constantdouble dx[n]; // Input double arraydouble dy[n]; // Output double array// Initialize the arraysfor (int i = 0; i < n; ++i) {dx[i] = 9 - i;dy[i] = i;}// Print the original dy arrayprintf("Original dy: ");for (int i = 0; i < n; ++i) {printf("%f ", dy[i]);}printf("\n");// Perform daxpy operation: dy = da * dx + dycblas_daxpy(n, da, dx, 1, dy, 1);// Print the modified dy arrayprintf("Modified dy: ");for (int i = 0; i < n; ++i) {printf("%f ", dy[i]);}printf("\n");return 0;
}

编译并运行:

~$ 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

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

~$ 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 下面:

~$ sudo mv /usr/local/include/eigen3/* /usr/local/include/

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

~$ sudo rm -rf /usr/local/include/eigen3

最后来跑一下官方示例 my_program.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;
}

编译运行:

~$ g++ my_program.cpp -o my_program
~$ ./my_program3  -1
2.5 1.5
http://www.lryc.cn/news/418599.html

相关文章:

  • Vue前端面试基础(一)
  • 使用Gitlab实现monorepo多项目CICD
  • 设计模式实战:银行账户管理系统的设计与实现
  • ⭕️【论文阅读】《Interactive Class-Agnostic Object Counting》
  • 高效的编程学习方法和技巧
  • sublime text插件开发
  • 【Linux网络】网络层协议:IP
  • 分布式接口文档聚合,Solon 是怎么做的?
  • 多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09
  • RAG+Agent项目实践系列:基于本地菜谱知识库的大语言模型RAG+Agent的解决方案设计和实现
  • JupyterNotebook添加Anaconda中已有的虚拟环境
  • 利用vscode-icons-js在Vue3项目中实现文件图标展示
  • 某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)
  • 做个一套C#面试题
  • 【ML】Pre-trained Language Models及其各种微调模型的实现细节和特点
  • YARN单机和集群环境部署教程
  • Android SurfaceFlinger——Vsync信号发送(五十二)
  • 零基础5分钟上手亚马逊云科技AWS核心云架构知识-用S3桶托管静态网页
  • YOLO:使用labelme进行图片数据标签制作,并转换为YOLO格式
  • 论文解读(15)-UrbanGPT
  • 大数据湖体系规划与建设方案(51页PPT)
  • 8月最新ChatGPT系统源码SparkAi系统,支持AI换脸+智能体GPTs应用+AI绘画+AI视频+文档分析
  • Linux知识复习第3期
  • 【独家原创】基于NRBO-Transformer多特征分类预测【24年新算法】 (多输入单输出)Matlab代码
  • Debezium日常分享系列之:Debezium 3.0.0.Alpha2 Released
  • SumatraPDF暗黑模式以及如何还原快捷键
  • LeetCode Medium|【300. 最长递增子序列】
  • jenkins自动化构建docker镜像并上传至harbor仓库
  • Java高级Day23-HashMap
  • 【学术会议征稿】第四届电气工程与计算机技术国际学术会议(ICEECT2024)