当前位置: 首页 > 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

相关文章:

在Ubuntu上安装OpenBLAS和Eigen

安装 openblas 直接使用 apt-get 命令即可安装&#xff1a; sudo apt-get install libopenblas-dev检查是否安装成功&#xff0c;可以用下面的示例代码 example.cpp&#xff1a; #include <stdio.h> #include <stdlib.h> #include "cblas.h"int main(…...

Vue前端面试基础(一)

Vue面试题目详解可以涵盖多个方面&#xff0c;从基础知识到高级特性&#xff0c;再到实际应用和性能优化等。以下是一些常见的Vue面试题目及其详解&#xff1a; 1. Vue双向绑定原理 详解&#xff1a; Vue的双向绑定原理是通过数据劫持结合发布者-订阅者模式实现的。Vue在内部…...

使用Gitlab实现monorepo多项目CICD

CI/CD是什么 CI/CD&#xff08;Continuous Intergration/Continuous Delpoy&#xff09;&#xff0c;即持续集成/持续部署&#xff0c;或称为持续集成/持续交付&#xff0c;作为一套面向开发和运维团队的解决方案&#xff0c;CI/CD 主要解决集成新代码和向用户频繁交付应用的问…...

设计模式实战:银行账户管理系统的设计与实现

问题描述 设计一个银行账户管理系统,支持不同类型的账户(如储蓄账户、支票账户)进行存取款操作,并能够在账户余额发生变化时通知相关观察者(如用户、银行系统)。系统需要确保账户操作的灵活性和可扩展性。 设计分析 策略模式 策略模式定义了一系列算法,并将每个算法…...

⭕️【论文阅读】《Interactive Class-Agnostic Object Counting》

[2309.05277] Interactive Class-Agnostic Object Counting (arxiv.org) code&#xff1a; cvlab-stonybrook/ICACount: [ICCV23] Official Pytorch Implementation of Interactive Class-Agnostic Object Counting (github.com) 目录 Abstract Abstract 我们提出了一个新…...

高效的编程学习方法和技巧

编程小白如何成为大神&#xff1f;大学新生的最佳入门攻略 编程已成为当代大学生的必备技能&#xff0c;但面对众多编程语言和学习资源&#xff0c;新生们常常感到迷茫。如何选择适合自己的编程语言&#xff1f;如何制定有效的学习计划&#xff1f;如何避免常见的学习陷阱&…...

sublime text插件开发

手工开发了一些ST的py插件&#xff0c;记录过程中遇到的一些问题。 ST3/ST4 begin_edit问题 报错&#xff1a; begin_edit() missing 2 required positional arguments: edit_token and cmdST3时已经不能直接调view.begin_edit方法了&#xff0c;需要通过runCommandTextComm…...

【Linux网络】网络层协议:IP

本篇博客整理了 TCP/IP 分层模型中网络层的 IP 协议&#xff0c;旨在让读者更加深入理解网络协议栈的设计和网络编程。 目录 一、网络层 二、IP 报头 1&#xff09;报头与有效载荷的分离 2&#xff09;有效载荷的上交 3&#xff09;源 IP 与目的 IP 4&#xff09;生存时间…...

分布式接口文档聚合,Solon 是怎么做的?

1、分布式接口文档聚合&#xff0c;是什么&#xff1f; 如果你有 “22” 个不同的服务&#xff08;比如微服务&#xff09;&#xff0c;每个服务都有自己的接口文档。每个服务的文档各自打开&#xff0c;估计你会觉得很麻烦的&#xff1f; 再如果&#xff0c;它们是用 openap…...

多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09

小罗碎碎念 这一期推文分享的文献是2022年发表于 Journal of Translational Medicine 的一篇文章&#xff0c;目前IF6.1。 这篇文章值得刚入门病理AI领域的老师/同学仔细研读&#xff0c;因为思路清晰&#xff0c;该讲到的流程基本都涉及了&#xff0c;详细讲述了病理图像的各种…...

RAG+Agent项目实践系列:基于本地菜谱知识库的大语言模型RAG+Agent的解决方案设计和实现

RAG+Agent项目实践系列:基于本地菜谱知识库的大语言模型RAG+Agent的解决方案设计和实现 为 A 项目构建一个基于菜谱知识库的问答机器人,由业务方提供一系列菜谱知识库和公司概况介绍材料,根据这些知识库要求实现一个问答机器人: 实现用户对于机器人自我身份和公司情况的回…...

JupyterNotebook添加Anaconda中已有的虚拟环境

比如&#xff0c;在Acaconde中存在一个我已经配置好的虚拟环境pose,现在我想在Jupyter中使用它 那么可以使用ipython kernel install --user --name 你要添加的环境 添加到Jupyter中。 对于Jupyter中已有的代码&#xff0c;就可以在Kernel - chanage kernel中改变内核。...

利用vscode-icons-js在Vue3项目中实现文件图标展示

背景&#xff1a; 在开发文件管理系统或类似的项目时&#xff0c;我们常常需要根据文件类型展示对应的文件图标&#xff0c;这样可以提高用户体验。本文将介绍如何在Vue3项目中利用vscode-icons-js库&#xff0c;实现类似VSCode的文件图标展示效果。 先看效果&#xff1a; 一…...

某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…...

做个一套C#面试题

1.int long float double 分别是几个字节 左到右范围从小到大&#xff1a;byte->short->int->long->float->double 各自所占字节大小&#xff1a;1字节、2字节、4字节、8字节、4字节、8字节 2.System.Object四个公共方法的申明 namespace System {//// 摘要…...

【ML】Pre-trained Language Models及其各种微调模型的实现细节和特点

Pre-trained Language Models及其各种微调模型的实现细节和特点 1. Pre-trained Language Models2. semi-supervised Learning3. zero-shot4. Parameter-Efficient Fine-Tuning4.1 含义&#xff1a;4.2 实现方式&#xff1a; 5. LoRA5.1 LoRA 的主要特点&#xff1a;5.2 LoRA 的…...

YARN单机和集群环境部署教程

目录 一、YARN 单机环境部署1. 环境准备2. 安装 Java3. 下载并安装 Hadoop4. 配置环境变量5. 配置 Hadoop配置 hadoop-env.sh配置 core-site.xml配置 hdfs-site.xml配置 yarn-site.xml配置 mapred-site.xml 6. 格式化 HDFS7. 启动 Hadoop 和 YARN8. 验证 YARN9. 运行一个简单的…...

Android SurfaceFlinger——Vsync信号发送(五十二)

通过上一篇文章我们创建了一个 EventThread 线程,并且它持有了 SurfaceFlinger 中 resyncWithRateLimit() 方法的指针。这里我们主要来看一下 EventThread 对信号的处理。 一、发送Vsync信号 当 SurfaceFlinger 执行完 queueBuffer() 方法之后,通过 onFrameAvailable 又会回…...

零基础5分钟上手亚马逊云科技AWS核心云架构知识-用S3桶托管静态网页

简介&#xff1a; 小李哥从今天开始将开启全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;让大家0基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构。 我将每天介绍一个基于亚马逊云…...

YOLO:使用labelme进行图片数据标签制作,并转换为YOLO格式

作者&#xff1a;CSDN _养乐多_ 本文将介绍如何使用 labelme 进行图片数据标签制作的方法&#xff0c;并将标签的格式从 JSON 格式转换为 YOLO 格式。 文章目录 一、安装labelme二、使用流程三、json格式转为YOLO格式四、按比例划分数据集&#xff08;训练、验证、测试&#…...

千问3.5-2B实战案例:在线考试截图作弊行为特征识别与标记

千问3.5-2B实战案例&#xff1a;在线考试截图作弊行为特征识别与标记 1. 项目背景与挑战 在线教育平台的监考人员每天需要审核大量考试截图&#xff0c;人工识别作弊行为存在以下痛点&#xff1a; 效率低下&#xff1a;平均每张截图需要30秒人工检查标准不一&#xff1a;不同…...

OpenClaw+Qwen3-4B创意写作:自媒体内容批量生成方案

OpenClawQwen3-4B创意写作&#xff1a;自媒体内容批量生成方案 1. 为什么需要自动化内容创作 作为一个自媒体运营者&#xff0c;我每天最头疼的就是内容创作。从选题策划到草稿撰写&#xff0c;再到格式调整和平台适配&#xff0c;整个过程耗时耗力。尤其当需要同时维护多个平…...

极客必备:OpenClaw+Qwen3.5-9B打造个人CLI增强工具集

极客必备&#xff1a;OpenClawQwen3.5-9B打造个人CLI增强工具集 1. 为什么需要AI增强命令行&#xff1f; 作为每天与终端打交道的开发者&#xff0c;我经常陷入两种困境&#xff1a;要么忘记复杂的grep参数组合&#xff0c;要么面对满屏日志输出找不到关键信息。传统解决方案…...

深入理解 sleep() 与 wait():从基础到监视器队列

前言看似都是“让线程停下来”&#xff0c;背后的原理却完全不同在 Java 并发编程中&#xff0c;sleep() 和 wait() 是两个经常被拿来比较的方法。很多初学者甚至有一定经验的开发者&#xff0c;也容易混淆它们。今天这篇文章&#xff0c;我们就从基础区别一路深入到监视器锁的…...

用Python可视化回溯算法:一步步动画演示八皇后问题的92种解法

用Python动画拆解八皇后问题&#xff1a;可视化回溯算法的92种解法 国际象棋盘上的八个皇后如何互不攻击&#xff1f;这个1848年提出的经典问题&#xff0c;曾让数学家高斯误算为76种解法。如今借助Python的可视化能力&#xff0c;我们可以将回溯算法的"试错-回退-重试&qu…...

STM32外设驱动库解析与实战应用

1. 为什么需要STM32外设驱动库&#xff1f;作为一名嵌入式开发者&#xff0c;我深知在STM32项目开发中最耗时的往往不是核心业务逻辑&#xff0c;而是各种外设的初始化和配置。每次新建项目都要重复编写USART、I2C、SPI等外设的初始化代码&#xff0c;不仅效率低下&#xff0c;…...

python cython

## 当Python需要速度&#xff1a;聊聊Cython的里里外外 做Python开发时间长了&#xff0c;总会遇到一些让人头疼的场景。代码逻辑明明很清晰&#xff0c;运行起来却慢得让人想砸键盘。特别是那些涉及大量数值计算、循环嵌套的部分&#xff0c;用纯Python写起来优雅&#xff0c;…...

Eclipse 添加书签的详细指南

Eclipse 添加书签的详细指南 引言 Eclipse 作为一款功能强大的集成开发环境(IDE),被广泛应用于Java编程和软件开发领域。书签功能是Eclipse提供的一个便捷的工具,可以帮助开发者快速定位到代码中的特定位置。本文将详细介绍如何在Eclipse中添加书签,以及如何管理和使用这…...

OpenClaw极限测试:Phi-3-mini-128k-instruct连续运行7天稳定性报告

OpenClaw极限测试&#xff1a;Phi-3-mini-128k-instruct连续运行7天稳定性报告 1. 测试背景与动机 去年夏天&#xff0c;当我第一次在个人笔记本上部署OpenClaw时&#xff0c;最担心的不是功能实现&#xff0c;而是长期运行的稳定性。作为一个需要7*24小时工作的自动化助手&a…...

CosmosNV2嵌入式C++库:STM32工业I/O模块原子级控制

1. 项目概述CosmosNV2 是一款专为 Cosmos NV2 Shield 硬件扩展板设计的嵌入式 C 类库&#xff0c;面向基于 STM32&#xff08;尤其是 STM32F4 系列&#xff09;的 Arduino 兼容开发平台&#xff08;如 Nucleo-F401RE、Nucleo-F411RE&#xff09;构建。该库并非通用型外设抽象层…...