做网站怎么返回首页/宁波seo网站
1.更换Ubuntu软件仓库镜像源
为了在WSL上使用TensorRT进行推理加速,需要安装以下环境,下面将按以下顺序分别介绍安装、验证以及删除环境:
#1.C++环境配置
gcc、gdb、g++
#2.gpu环境
cuda、cudnn
#3.Cmake环境
CMake
#4.OpenCV环境
OpenCV
#5.TensorRT环境
TensorRT
在安装这些库之前,需要先更换清华镜像,可以加速Ubuntu下载速度,使用指令lsb_release -a查看Linux 发行版的信息,如下所示:
其中关注一下Codename:focal ,参照博客WSL不同版本的Ubuntu更换清华镜像-CSDN博客,如果是focal的话,则修改镜像源为下面内容,如果是其他的codename的话,需要将https://mirrors.tuna.tsinghua.edu.cn/ubuntu,后面的focal修改为对应的内容,比如还可能是jammy、lunar、kinetic和bionic。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
现在来看一下如何修改,分成两个步骤,第一:备份该配置文件,避免镜像替换后不可用,还可以恢复到原始版本;第二:修改镜像源。
首先来看备份配置文件:配置文件放在/etc/apt路径下,执行以下指令备份配置文件sources.list.
cp sources.list sources.list.bak
然后修改镜像源,执行以下指令:
vim source.list
最后把前面的镜像源地址复制进去,然后在一般模式下使用:wq,保存并退出,如下所示:
2.C++环境配置
安装:
sudo apt update
sudo apt install build-essential
验证:
gcc --version
3.CUDA和CUDNN安装
前面也提到了wsl-ubuntu20.04的显卡驱动和本机的显卡驱动是一样的,再利用nvidia-smi查看下显卡驱动版本,再决定安装什么版本的CUDA和cuDNN.
显卡驱动版本号为12.2,可以理解为可以支持的CUDA最大版本号,但是我们也不需要安装那么高的CUDA,可以选择一个稳定点的比如CUDA11.6.
3.1CUDA-11.6安装
CUDA下载:CUDA Toolkit Archive | NVIDIA Developer,选择cuda11.6下载,如下所示。
安装: 接下来执行以下指令来进行安装;
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
以上的指令分别代表:(1)下载 cuda-wsl-ubuntu.pin
文件;(2)移动 cuda-wsl-ubuntu.pin
文件到 /etc/apt/preferences.d/
目录;(3)下载 CUDA 11.6 的本地安装包;(4)安装 CUDA 仓库包;(5)添加 CUDA 仓库的公钥;(6)更新包列表;(7)安装 CUDA。
其中第三步中,如果网络不顺畅的话可以直接复制链接到浏览器中进行下载,然后再放到你的安装路径下,我这里直接是放在/root路径下,然后继续执行后面的步骤。
验证:
CUDA默认安装在/usr/local路径下,进入到该路径下,其中cuda-11.6文件夹即为安装好的cuda,里面会包含有bin、lib及include文件,其中nvcc指令在bin路径下,即/usr/local/cuda-11.6/bin.
下面需要把bin路径下的常用指令添加在home/.bashrc环境变量文件中,然后再使用nvcc -V来验证cuda是否安装成功:
首先使用下面指令打开.bashrc:
vim ~/.bashrc
然后直接在最后一行插入下面代码,指示了cuda-11.6的路径:
export CUDA_HOME=/usr/local/cuda-11.6 # 新建环境变量CUDA_HOME
export PATH=$PATH:$CUDA_HOME/bin # 将bin目录添加到PATH这个环境变量
最后执行下面指令来验证cuda是否已经安装成功:
source ~/.bashrc
nvcc -V
3.2cuDNN-8.9.5安装
cuDNN下载:链接,我这里选择符合版本要求的v8.9.5,选择Linux_x86_64(Tar)下载。
我这里选择把下载好的文件放在/root路径下,如下所示:
安装: 首先解压得到lib和include文件夹,然后将解压后的文件夹分别复制到前面的cuda-11.6里面对应的lib64和include路径下,指令如下所示:
tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda11-archive.tar.xz
cd cudnn-linux-x86_64-8.9.5.30_cuda11-archive/ #进入解压路径
cp ./lib/* /usr/local/cuda-11.6/lib64 # 拷贝lib
cp ./include/* /usr/local/cuda-11.6/include # 拷贝头文件
验证: 执行以下指令,显示如下内容说明cuDNN安装成功。
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
4.CMake-3.30.0安装
CMake下载:Download CMake,这里我选择的是3.30.0版本进行下载,下载得到cmake-3.30.0.tar.gz压缩包,然后找个路径进行解压,如下所示:
安装:
首先将cmake-3.30.0.tar.gz这个压缩包放在/root路径下,使用以下指令来解压缩cmake包.
tar -zxvf cmake-3.30.0.tar.gz
然后进入解压后的文件夹,进行编译和安装,其中make -j4中的-j4表示使用4个进程,可以提升生成的速度:
cd cmake-3.30.0/
./bootstrap
make -j4
make install
问题: 我在执行./bootstrap遇到了Error:Could not find OpenSSL,如下所示:
解决: 那么需要安装libssl-dev,然后重新再执行一遍./bootstrap指令,执行成功后是下面这样子的.
sudo apt-get install libssl-dev
验证: 执行以下指令,查看Cmake版本及Cmake位置,没有问题的话说明Cmake安装成功了。
cmake --version
which cmake
5.OpenCV-4.8安装
OpenCV下载:Releases - OpenCV,这里我选择一年前发布的OpenCV-4.8,点击sources,下载得到opencv-4.8.0.zip压缩包,然后找个路径进行解压,如下所示:
安装:
第一步:把opencv-4.8.0.zip这个压缩包放在/root路径下,使用unzip指令来解压缩opencv包.
unzip opencv-4.8.0.zip
第二步:进入opencv路径,创建build文件,用来保存编译的文件。
cd opencv-4.8.0/
mkdir build
cd build
第三步:依次执行以下指令,使用CMake来配置、生成和安装OpenCV,其中make生成这一步的时间稍微会长一点,大概15分钟左右,可以在make后面加入-j4来加快生成,其中4指同时使用4个进程。
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..
make -j4
make install
问题: 我在执行make -j4指令的时候,报错fatal error: openjpeg.h: No such file or directory,那么需要安装libopenjp2-7-dev。
解决: 如果你和我遇到了一样的问题,那么安装完之后为了保险起见,需要删除build文件夹,重新配置生成,即重新执行第二步和第三步的指令。
apt-get install libopenjp2-7-dev
验证:
安装完OpenCV后需要知道OpenCV的bin、lib及include文件放在哪个路径下:
其中include头文件放在路径下:/usr/local/include/opencv4/opencv2;bin文件放在路径下:/usr/local/bin;lib文件放在路径下:/usr/local/lib.
下面来验证OpenCV是否安装成功,由于我们不是在ubuntu主机上操作,而是相当于链接一个远程主机,所以使用imshow报错是很正常的,如下所示,但是我们不需要imshow函数,只需要用到opencv来处理图片,所以我需要修改一下样例的代码。
首先时进入到一开始解压缩的文件夹中,并使用vim来编辑一下代码,只需要把imshow修改为imwrite,并且注释掉waitKey(0)代码即可,如下所示。
cd /root/opencv-4.8.0/samples/cpp/example_cmake
vim example.cpp
然后再执行以下指令编译和生成可执行文件,如下所示.
cmake -S . -B build
cmake --build build
最后运行可执行文件,发现在当前路径下会生成一个Sample.jpg的图片,显示如下则说明安装成功了(查看图片可以直接通过\wsl.localhost\Ubuntu-2004\root\opencv-4.8.0\samples\cpp\example_cmake路径,在window上直接查看):
./build/opencv_example
6.TensorRT-8.5安装
TensorRT下载:NVIDIA TensorRT 8.x Download | NVIDIA Developer,EA 版本代表抢先体验,而GA 代表通用性,表示稳定版,所以我们还是下载TensorRT8.5GA稳定版的,
安装:
第一步:把TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz这个压缩包放在/root路径下,解压缩TensorRT包.
tar -zxvf TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz
第二步: 将TensorRT/lib的绝对路径添加到在home/.bashrc环境变量文件中.
首先使用以下指令打开.bashrc.
vim ~/.bashrc
然后添加以下代码到文件中,如下所示:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/TensorRT-8.5.1.7/lib
最后使用以下指令更新一下:
source ~/.bashrc
验证:
第一步:进入到/root/TensorRT-8.5.1.7/samples/sampleOnnxMNIST路径下.
cd /root/TensorRT-8.5.1.7/samples/sampleOnnxMNIST
第二步:编译并执行可执行文件,如下所示即安装成功。
make
../../targets/x86_64-linux-gnu/bin/sample_onnx_mnist
相关文章:

WSL-Ubuntu20.04部署环境配置
1.更换Ubuntu软件仓库镜像源 为了在WSL上使用TensorRT进行推理加速,需要安装以下环境,下面将按以下顺序分别介绍安装、验证以及删除环境: #1.C环境配置 gcc、gdb、g #2.gpu环境 cuda、cudnn #3.Cmake环境 CMake #4.OpenCV环境 OpenCV #5.Ten…...

6Python的Pandas:数据读取与输出
Pandas是一个强大的Python数据分析库,提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法: 1. 读取CSV 读取数据 从CSV文件读取数据 import pandas as pd# 读取CSV文件 df pd.read_csv(file_path.csv) print(df.head())从Excel文…...

ubuntu 网络 通讯学习笔记2
1.ubuntu 网络常用命令 在Ubuntu中,有许多网络相关的常用命令。以下是一些主要命令及其用途: ifconfig:此命令用于显示和配置网络接口信息。你可以使用它来查看IP地址、子网掩码、广播地址等。 例如:ifconfig 注意:…...

深入理解JS中的事件委托
JavaScript中的事件委托是一种非常有用的事件处理模式,它允许我们利用事件模型的事件冒泡阶段来减少事件处理器的数量,提高网页性能。本文将介绍事件委托的概念、工作原理、优点以及如何在实际项目中应用事件委托。 1、事件模型 事件模型指在Web开发中,处理和管理事件(如…...

Camera Raw:首选项
Camera Raw 首选项 Preferences提供了丰富的配置选项,通过合理设置,可以显著提升图像处理的效率和效果。根据个人需求调整这些选项,有助于创建理想的工作环境和输出质量。 ◆ ◆ ◆ 打开 Camera Raw 首选项 方法一:在 Adobe Bri…...

HLS加密技术:保障流媒体内容安全的利器
随着网络视频内容的爆炸性增长,如何有效保护视频内容的版权和安全成为了一个亟待解决的问题。HLS(HTTP Live Streaming)加密技术作为一种先进的流媒体加密手段,凭借其高效性和安全性,在直播、点播等场景中得到了广泛应…...

捷配总结的SMT工厂安全防静电规则
SMT工厂须熟记的安全防静电规则! 安全对于我们非常重要,特别是我们这种SMT加工厂,通常我们所讲的安全是指人身安全。 但这里我们须树立一个较为全面的安全常识就是在强调人身安全的同时亦必须注意设备、产品的安全。 电气: 怎样预…...

UE4-初见虚幻引擎
一.创建自己的工程 1.启动 a.通过桌面双击图标来打开对应版本的虚幻引擎 b.通过EPIC启动器开启动虚幻引擎 2.选择或新建项目 ps:高版本虚幻编辑器可以打开低版本的虚幻项目,但是高版本虚幻的项目不可以由低版本的虚幻编辑器打开。 3. 选择要打开的项目 4.选择模版 选…...

基于Vue CLI 3构建Vue3项目(Vue2也可参考)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

Midjourney 绘画提示词汇总:让你的 AI 绘画与众不同
在 AI 技术迅速发展的今天,AI 绘画已经成为了创意工作中的一大利器。Midjourney 作为其中的佼佼者,以其强大的绘画能力和高质量的输出受到了广大用户的喜爱。为了帮助你充分发挥 Midjourney 的潜力,我们整理了一些能够让 AI 绘画与众不同的提…...

React和Vue.js的相似性和差异性是什么?
React 和 Vue.js 都是流行的前端 JavaScript 框架,它们有一些相似性和差异性: 相似性: 组件化:React 和 Vue.js 都支持组件化开发,允许开发者将界面拆分为独立的组件,提高代码的复用性和可维护性。…...

Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优
针对千万级用户的高并发应用,Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优是至关重要的。 以下是详细的配置和调优建议: Nginx 配置和调优 工作进程数(worker_processes): 根据 CPU 核心…...

Kafka Producer发送消息流程之消息异步发送和同步发送
文章目录 1. 异步发送2. 同步发送 1. 异步发送 Kafka默认就是异步发送,在Main线程中的多条消息,没有严格的先后顺序,Sender发送后就继续下一条,异步接受结果。 public class KafkaProducerCallbackTest {public static void mai…...

Flutter 状态管理调研总结
一, 候选状态管理组件简介 0. flutter_hooks 一个 React 钩子在 Flutter 上的实现:Making Sense of React Hooks 钩子是一种用来管理 Widget 生命周期的新对象,以减少重复代码、增加组件间复用性,允许将视图逻辑提取到通用的用例中并重用&…...

入门C语言只需一个星期(星期二)
点击上方"蓝字"关注我们 01、算术运算符 int myNum = 100 + 50;int sum1 = 100 + 50; // 150 (100 + 50)int sum2 = sum1 + 250; // 400 (150 + 250)int sum3 = sum2 + sum2; // 800 (400 + 400) + 加 将两个值相加 x + y - 减 从另一个值中减去一个值 …...

切换node版本
一、在Linux上切换Node.js版本有多种实现方法: 1.使用nvm(Node Version Manager): 安装nvm:可以通过curl或wget来安装nvm,具体请参考nvm的官方文档。 安装不同版本的Node.js:使用nvm可以轻松…...

【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)
目录: 目录: 一、 Base64概述和应用场景 1.1 概述 1.2 应用场景 二、Base16 2.1 Base16编码 2.2 Base16编解码 三、Base64 四、OpenSSL BIO接☐ 4.1 Filter BIOs: 4.2 Source/Sink BIOs: 4.3 应用场景: 4.4 具体使用&…...

ssrf复习(及ctfshow351-360)
1. SSRF 概述 服务器会根据用户提交的URL发送一个HTTP请求。使用用户指定的URL,Web应用可以获取图片或者文件资源等。典型的例子是百度识图功能。 如果没有对用户提交URL和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造"的缺陷…...

请求通过Spring Cloud Gateway 503
最近想处理一个通用的网关服务。 但是我在处理好所有配置的时候发现,网络请求过网关的时候,一直503,我所有的配置都没问题。 环境: JDK: 17 Spring Cloud: 2023.0.2 在 Spring Cloud Gateway 的早期版本中ÿ…...

C++代码_让室友坑我
引子 今天古文波在外地上C集训营,结果却被一起学习的室友坑了。啊,好气,我要报复室友。 所以,我写出了死亡代码。 如果你也想报复某些人,可以看下去。 代码构造: 头文件 想要使用一些函数,如…...

AG32 的MCU与FPGA的主频可以达到568MHz吗
Customers: AG32/ AGRV2K 这个芯片主频和定时器最高速度是多少?用户期望 CPLD计时器功能0.1ns以下。 AGM RE: CPLD做不到 0.1ns的速率,这个需要10G以上的时钟。 那AGRV2K最高多少MHz呢? 一般200MHZ比较容易实现。 进一步说明࿱…...

怎样减少视频的容量 怎样减少视频内存保持清晰度
在数字媒体时代,视频内容已经成为人们日常交流和信息传递的重要方式。然而,视频往往占用大量存储空间,给我们的设备带来不小的负担。如何在不损失视频质量的前提下,减少视频文件的大小呢?本文将为你揭秘几个实用的技巧…...

谈一谈一条SQL的查询、更新语句究竟是如何执行的?
文章目录 理解执行流程衍生知识redo logbinlog 本篇文章是基于《MySQL45讲》来写的个人理解与感悟。 理解 先看下图: 上一篇文章我们讨论了一条SQL查询语句的执行流程,并介绍了执行过程中涉及的处理模块。 回顾一下: 大体来说,…...

自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo
参考:全景和标定全功能算法实现和exe测试demo-金书世界 1、测试环境 opencv310vs2022 2、使用的编程语言 c和c 3、测试的demo的获取 更新:测试的exe程序,无需解压码就可以体验算法测试效果 百度网盘: 链接:http…...

【Docker 系列】学习路线
学习基本概念: 了解容器化与虚拟化的区别了解Docker的基本概念、术语和架构 安装Docker: 根据所使用的操作系统,安装Docker Desktop(Windows、macOS)或Docker Engine(Linux) Docker镜像…...

蓝色系信息工作室建站网站源码系统 带模版手机端 带完整的源代码包以及搭建部署教程
系统概述 信息工作室建站网站源码系统是一款专为追求高效、灵活与个性化建站需求的用户设计的综合性平台。该系统不仅提供了丰富的网站构建模块和预设模版,还支持手机端自适应布局,确保网站在不同设备上都能展现出最佳效果。此外,系统附带完…...

什么是带宽限制,如何影响服务器数据传输?
什么是带宽限制? 带宽限制是指网络连接中的数据传输速率上限,通常以每秒传输的数据量(比特或字节)来衡量。例如,一个服务器的带宽限制为100 Mbps,意味着它在理想情况下每秒最多能传输100兆比特的数据。带宽限制由网络服务提供商或数据中心设…...

RISC-V在线反汇编工具
RISC-V在线反汇编工具: https://luplab.gitlab.io/rvcodecjs/#q34179073&abifalse&isaAUTO 不过,似乎,只支持RV32I、RV64I、RV128I指令集:...

从零手写实现 nginx-32-load balance 负载均衡算法 java 实现
前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …...

基于STC89C51单片机的烟雾报警器设计(煤气火灾检测报警)(含文档、源码与proteus仿真,以及系统详细介绍)
本篇文章论述的是基于STC89C51单片机的烟雾报警器设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 摘要 原理图 实物图 仿真图 元件清单 代码 系统论文 资源下载 摘要 随着现代家庭用火、…...