KuiperInfer深度学习推理框架环境配置-Ubuntu 22.04

news2024/11/25 4:42:06

KuiperInfer项目地址

Github项目地址
B站课程地址

安装Armadillo

官网:Armadillo官网
介绍:Armadillo C++ Library是一种C++的线性代数库,包含一些矩阵和向量的运算,可以选用高效的LAPACK和BLAS进行加速。
矩阵相关计算的文档:使用手册
安装之前:
使用Linux对应发行版的包管理器安装必要的组件

Fedora & Red Hat: cmake, openblas-devel, lapack-devel, arpack-devel, SuperLU-devel

Ubuntu & Debian: cmake, libopenblas-dev, liblapack-dev, libarpack2-dev, libsuperlu-dev

安装依赖包:

sudo apt update
sudo apt install cmake libopenblas-dev liblapack-dev libarpack2-dev libsuperlu-dev

安装Armadillo:

sudo apt-get install libarmadillo-dev

安装目录:
头文件安装在:

/usr/include/

库文件安装在:

/usr/lib/x86_64-linux-gnu

寻找usr目录:

find usr forder: cd /usr

安装cmake

首先安装gcc和g++

sudo apt install gcc
sudo apt install g++

然后下载安装openssl(因为cmake与openssl存在依赖关系)
下载地址:openssl官网
进入download目录

tar -xvf openssl-1.1.1t.tar.gz
cd openssl-1.1.1t
./config --prefix=/usr/local --openssldir=/usr/local/openssl

然后下载安装cmake
下载地址:cmake官网

tar -xvf cmake-3.26.0-rc4.tar.gz
cd cmake-3.26.0-rc4
./bootstrap 
make
make install

cmake测试

cmake –version

安装成功

安装GTest测试库和Glog日志库

googletest官网
glog官网
先安装glog,再gtest,两个之间有依赖关系

mkdir build 在当前目录下创建一个build文件夹
cd build 进入刚创建的build文件夹
cmake ..
make -j8
make install

库文件在: /usr/local/lib/
头文件:/usr/local/include/
增加库寻找路径

vim ~/.bashrc
source ~/.bashrc

在这里插入图片描述
gtest安装

mkdir build
cd build
cmake ..
make -j8
make install

库文件在: /usr/local/lib/
头文件:/usr/local/include/

安装Opencv

Opencv官网:Opencv官网

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

下载Opencv源码到用户下载目录:
在这里插入图片描述
执行命令:

cd 下载/
unzip opencv-4.8.0.zip
cd opencv-4.8.0/
mkdir build
cd build/
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install

添加路径:

// 打开文件并编辑
sudo vim /etc/ld.so.conf
// 在文件末尾添加以下代码
/usr/loacal/lib
// 保存文件并关闭,运行以下代码
sudo ldconfig

配置环境:

// 编辑.bashrc文件
sudo vim /etc/bash.bashrc 
// 添加以下代码到文件末尾
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
// 关闭并保存.bashrc文件
// 执行命令
source /etc/bash.bashrc

此时输入以下命令,可能会报错,说找到不到OPencv

pkg-config opencv --modversion

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

解决方案:创建opencv.pc文件

cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc

并在该文件中添加信息,注意这些信息需要与自己安装opencv时的库路径对应

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.0.1
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core
~                                               

保存并退出文件,将文件导入到环境变量:

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

测试:产生如下信息表示安装完成

jasmine@lhl:~/prj/KuiperInfer/build$ pkg-config --cflags --libs opencv
-I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core

安装google benchmark

Google benchmark仓库地址:google benchmark官网
依次执行以下命令:

git clone https://github.com/google/benchmark.git
cd benchmark
cmake -E make_directory "build"
cmake -E chdir "build" cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release ../
cmake --build "build" --config Release
cmake -E chdir "build" ctest --build-config Release
sudo cmake --build "build" --config Release --target install

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/754158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arthas和常量池

一、Arthas 快速入门 | arthas 1、Arthas使用 运行arthas提供的应用程序 curl -O https://arthas.aliyun.com/math-game.jar java -jar math-game.jar 运行arthas工具jar包 curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar 启动界面如下图&…

Google Play针对恶意软件采取最新反制措施!

近日,谷歌开始针对Google Play上不断入侵的恶意软件采取反制措施,要求所有以机构名义注册的新开发者账户在提交应用程序之前提供一个有效的D-U-N-S号码。 这项新措施能有效提高平台的安全性和可信度,同时也能够有效遏制新账户提交恶意软件的…

kubernetes中特定域名使用自定义DNS服务器出现的解析异常

故障发生背景: 租户反馈生产业务服务连接到中间件的时候,偶尔会有连接失败的情况,然后我们查看对应组件服务正常,手动请求组件服务也显示正常,让租户查看业务服务日志发现报错无法解析对应的域名,我们手动是…

数据库的分片策略

数据库的分片策略 1、范围分片2、hash 取模分片3、一致性hash 分片 1.分片策略 数据库的分片策略是指将数据库中的数据按照一定的规则和方式进行分割(分片)存储在不同的物理节点或服务器上的策略。分片策略旨在实现水平扩展,提高数据库的性…

暑假第九天打卡

英语: 新东方六级一单元单词刷题复习 离散: 例12 使用消解算法判断下述公式是否是可满足的: 公式 S p∧(p∨q)∧(p∨q)∧(q∨r)∧(q∨r) 解: S p∧(p∨q)∧(p∨q)∧(q∨r)∧(q∨r) //化为主合取式 循环1: S0 S1 {p…

Windows 进程和作业

Windows 进程和作业 创建进程CreateProcess 函数的参数CreateProcess 的流程 创建Windows“现代化”进程创建其他类型的进程 进程的内部构造EPROCESSKPROCESSPEBCSR_PROCESSW32PROCESS 受保护进程最小进程和 Pico 进程最小进程Pico进程 Trustlet 安全进程进程的终止作业作业的限…

合并完之后,进行回退

我是将分支合并到了uat_v3上,现在又要求将uat_v3上的代码回退到合并以前; 我是将origin/uat_v3 checkout 除一份本地uat_v3,然后选中合并以前的commit记录,新建分支 temp/reverse 分支; 这样我本地的temp/reverse分支就已经是合…

[Java进阶] Swing两万字大总结一(超详细教程,这不得收藏一波)

🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 🦄 …

将类模板做为参数(类模板中使用)

将类模板做为参数(类模板中使用) 这种方式只在类模板中使用,函数模板不能使用这种方法。 将模板名做为一种特殊的数据类型,实例化对象的时候,使用模板名做为参数,传递给模板。 下面例子中,数组…

Unity 上传文件到阿里云 对象存储OSS服务器

首先登录阿里云 免费试用–对象存储OSS --点击立即试用,可以有三个月的免费试用 创建Buket 新建AccessKey ,新建完成后,会有一个CSV文件,下载下来,里面有Key ,代码中需要用到 下载SDK 双击打开 sln文件&#xff0…

Java初识,继承

文章目录 环境变量配置的意义javapath与classpath伪随机数的生成RandmomMathThreadLocalRandomSecureRandom javamain函数Scanner 函数打印函数 注释Java中的注释主要分为以下三种 Stringboolean equals(Object anObject)int compareTo(String s) 数组数组的遍历数组名数组参数…

第八章:SegNet——一个用于强大的语义像素级标注的深度卷积编码-解码架构

0.摘要 我们提出了一种新颖的深度架构SegNet,用于语义像素级图像标注。SegNet具有一些吸引人的特性: (i)它只需要对完全学习的函数进行前向评估,就可以获得平滑的标签预测; (ii)随着深度增加,像素标注考虑了更大的上下…

网络安全中黑客的问题,黑客真的那么厉害吗?

前言 黑客这个名字一直是伴随着互联网发展而来,给大家的第一印象就是很酷,而且技术精湛,在网络世界里无所不能。目前几乎所有的公司企业甚至国家相关部门都会争相高薪聘请技术精湛的黑客作为互联网机构的安全卫士,所以黑客也是很…

超市商品信息管理系统设计与实现(论文+源码)

超市商品信息管理系统设计与实现(论文源码) 本篇 论文源码私我 以上内容只是精简版 还有很多原创类型论文 摘 要 本次主要先介绍研究背景、研究目标及相应价值的基础上,分析了国内外电子商务及相应超市管理系统的研究现状。随着计算机技术和网络技术的发展&#xf…

【力扣】543. 二叉树的直径

543. 二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root…

高等数学❤️第一章~第二节~极限❤️极限的概念与性质~函数极限(自变量趋于无穷大时的极限)详解

【精讲】高等数学中函数极限:自变量趋于无穷大时的极限 博主:命运之光的主页 专栏:高等数学 目录 【精讲】高等数学中函数极限:自变量趋于无穷大时的极限 导言 一、函数极限自变量趋于无穷大的概念 二、函数极限自变量趋于无穷…

【力扣刷题 | 第十九天】

目录 前言: 135. 分发糖果 - 力扣(LeetCode) 860. 柠檬水找零 - 力扣(LeetCode) 总结: 前言: 今天着重刷贪心算法的题目 135. 分发糖果 - 力扣(LeetCode) n 个孩子…

Deepin/UOS Linux 桌面自定义 IDEA/DataGrip 应用程序图标

在 $HOME/Desktop目录下编辑 vim jetbrains.intelij.idea.desktop [Desktop Entry] TypeApplication NameIntelij IDEA Icon/opt/module/idea-IU-203.8084.24/bin/idea.png Exec/opt/module/idea-IU-203.8084.24/bin/idea.sh Terminalfalse CategoriesDevelopment;IDE;vim je…

力扣“找出数组排序后的目标下标”:一种简洁高效的算法

本篇博客会讲解力扣“2089. 找出数组排序后的目标下标”的解题思路,这是题目链接。 本题的解题思路如下:首先,利用qsort函数对原数组进行升序排序,然后,根据目标值在排序后的数组中查找对应的下标,并将其存…

Pixi + Tone 实现简单midi音频可视化

依赖库 Pixi.js 是一个前端图形渲染库,使用精灵技术绘制高性能的图形。Tone.js是一个前端音频框架,对web audio api进行了封装,可以快速创建音频样本、音频效果、进行音频分析和音频播放。tonejs/midi是tonejs的一个插件,可以讲m…