【Apollo 自动驾驶】Win11 中 WSL2 安装配置 Apollo 环境

【Apollo 自动驾驶】Win11 中 WSL2 安装配置 Apollo 环境

【1】Win11 WSL2 安装配置 Nvidia Cuda

【1.1】检查计算机硬件的显卡信息

计算机图标右击 -> 管理 -> 设备管理器 -> 显示适配器;

【1.2】检查对应显卡并安装 Nvidia 显卡驱动 

下载对应的 Nvidia 显卡驱动,Nvidia 显卡驱动下载链接

 注意此处应该选择 Windows 主机显卡型号对应的驱动;

【1.3】安装 WSL2 中对应 Ubuntu 的 CUDA Toolkit

选择对应的 CUDA Toolkit,CUDA Toolkit 下载链接

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

配置 CUDA Toolkit

编辑 vim ~/.bashrc添加如下信息
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}使能
source ~/.bashrc

检查是否安装成功

执行如下命令
nvcc -V-----------------------------------------------------------------nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

【2】WSL2 安装配置 Docker 环境

【2.1】下载配置 Docker-Desktop

Docker-Desktop 下载地址 : https://www.docker.com/products/docker-desktop/

安装完毕后,选择 settings -> Resources -> WSL integration 从而 WSL2 可以使用 docker 命令

【3】Apollo 代码编译与环境配置

【3.1】编译 Apollo 代码

下载 Apollo 源码并进入源码目录后 拉取相关镜像
bash docker/scripts/dev_start.sh进入 docker 编译环境容器
bash docker/scripts/dev_into.sh编译 Apollo 代码
bash apollo.sh build

【3.2】配置并启动验证 DreamView

【3.2.1】启动 DreamView

启动 DreamView
bash scripts/bootstrap.sh

【3.2.2】针对 WSL2 环境修改显示 IP

修改 docker/scripts/dev_start.sh 如下

 修改 scripts/bootstrap.sh 如下

DreamView 启动完成显示如下

【3.3】Apollo 启用 GPU

【3.3.1】Apollo 编译时观察是否启用了 GPU

执行命令 bash apollo.sh build

出现如下内容

说明启用了 GPU 编译;

编译选项说明

#使用 Release 模式和 GPU 编译
bash apollo.sh build_opt_gpu其他可选编译方式如下所示:
# bash apollo.sh build 表示带调试信息的 Release 模式编译
# [module] 可选,表示待编译的模块;如果不加任何模块,表示编译所有模块
# 例如: bash apollo.sh build perception ,表示只编译感知模块
# bash apollo.sh build ,编译所有模块
#
bash apollo.sh build [module]模式编译
# Debug
bash apollo.sh build_dbg [module]
模式编译
# Release
bash apollo.sh build_opt [module]#使用 CPU ,带调试信息的 Release 模式编译
bash apollo.sh build_cpu [module]#使用 GPU ,带调试信息的 Release 模式编译
bash apollo.sh build_gpu [module]#使用 GPU , Release 模式编译
bash apollo.sh build_opt_gpu [module]

【3.3.2】观察判定 Apollo 是否启用了 GPU

执行命令 bash docker/scripts/dev_start.sh

出现如下内容 

执行命令 bash docker/scripts/dev_into.sh

出现如下内容

以上可以判定 Apollo 镜像中没有启用 GPU;

【3.3.3】Apollo 镜像中启用 GPU

安装 nvidia-container-runtime添加相关仓库
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update安装
sudo apt-get install nvidia-container-runtime

问题与解决方案

【1】Failed to pull docker image : apolloauto/apollo:dev-x86_64-18.04-20210914_1336 docker 镜像拉取失败

需要添加权限sudo bash docker/scripts/dev_start.sh

参考与致谢

本博客为博主学习笔记,同时参考了网上众博主的博文以及相关专业书籍,在此表示感谢,本文若存在不足之处,请批评指正。

【1】CUDA on WSL User Guide

【2】Win11怎么查看显卡配置 Win11查看显卡配置的方法

【3】在wsl2中安装CUDA

【4】基于wsl的Apollo环境配置 

【5】Win10 WSL2 ubuntu20.04编译apollo 

【6】https://github.com/NVIDIA/nvidia-container-runtime

【7】https://nvidia.github.io/nvidia-container-runtime/

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

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

相关文章

一点感受

做了两天企业数字化转型的评委,涉及全国最顶级的公司、最顶级的实际落地项目案例,由企业真实的落地团队亲自当面讲解。主要是为了了解了解真实的一线、真实的客户、真实的应用现状和应用水平。 (1)现状 我评审的涉及底层技术平台&…

pytorch学习——循环神经网络RNN讲解及其实现

参考书籍:8.6. 循环神经网络的简洁实现 — 动手学深度学习 2.0.0 documentation 参考视频:54 循环神经网络 RNN【动手学深度学习v2】_哔哩哔哩_bilibili 一.介绍 循环神经网络RNN(Recurrent Neural Network )是一类广泛应用于序列…

Xilinx IDDR与ODDR原语的使用

文章目录 ODDR原语1. OPPOSITE_EDGE 模式2. SAME_EDGE 模式 ODDR原语 例化模板: ODDR #(.DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE" .INIT(1b0), // Initial value of Q: 1b0 or 1b1.SRTYPE("SYNC…

css transition属性

如果想实现一些效果:比如一个div容器宽高拉伸效果,或者一些好看的有过渡的效果可以使用 定义和用法 transition 属性是一个简写属性,用于设置四个过渡属性: transition-property transition-duration transition-timing-func…

go语言的高级特性

go语言调用C语言 go tool cgo main.go

Chrome 108版(64-bit 108.0.5359.125)网盘下载

还在用Selenium的朋友们注意了,目前Chrome的最新版是116,而官方的Chromedriver只支持到115版。 可惜Google不提供旧版Chrome的下载方式,需要旧版的很难回去了。如果真的想要旧版的Chrome,只能民间自救。 我在2022年12月备份了C盘…

pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java

使用用具PyCharm 2023.2.1 1:pyspark 系统找不到指定的路径, Java not found and JAVA_HOME environment variable is not set. Install Java and set JAVA_HOME to point to the Java installation directory. 解决方法:配置正确环境变量…

VR农学虚拟仿真情景实训教学演示

首先,VR农学虚拟仿真情景实训教学提供了更为真实的实践环境。传统的农学实训往往受制于时间、空间和资源的限制,学生只能通过观察或简单的模拟来学习农业知识和技能。而借助虚拟现实技术,学生可以进入虚拟农场,与各种农作物、工具…

数据库分析工具explain

1.id:查询语句的编号 2.select_type:查询类型,有三种,simple简单查询,primary,subquery等 3.table:查询的表 4.type:查询性能,system > const > eq_ref > ref > range > index > ALL system&…

Redis 高可用及持久化

Redis 高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供…

一个集成的BurpSuite漏洞探测插件1.1

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0c…

最近读书了吗?林曦老师与你分享来自暄桐课堂的读书方法

近来,大家有在开心读书吗?对于读书,有一个很生动的说法:“无事常读书,一日是四日。若活七十年,便二百八十。”读书帮助我们超越个体生命经验的限制,此时此地的我们,也可借由书本&…

Linux 服务器运维管理面板1Panel体验

地址 https://github.com/1Panel-dev/1Panel 安装 根据GitHub提示运行即可 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh安装成功,期间会安装docker 、docker-compose

国产信创服务器如何进行安全可靠的文件传输?

信创,即信息技术应用创新,2018年以来,受“华为、中兴事件”影响,国家将信创产业纳入国家战略,并提出了“28n”发展体系。从产业链角度,信创产业生态体系较为庞大,主要包括基础硬件、基础软件、应…

aarch64 arm64 部署 stable diffusion webui 笔记 【3】

接上篇 aarch64 arm64 部署 stable diffusion webui 笔记 【2】继续安装其他依赖 gfpgan-CSDN博客 source venv/bin/activate export LD_LIBRARY_PATH/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib ./webui.sh 离线安装记录 (venv) [yeqiangceph3 stable-diffusio…

线性代数(六) 线性变换

前言 《线性空间》定义了空间,这章节来研究空间与空间的关联性 函数 函数是一个规则或映射,将一个集合中的每个元素(称为自变量)映射到另一个集合中的唯一元素(称为因变量)。 一般函数从 “A” 的每个元…

YMatrix 5.0 与天翼云完成产品兼容性认证

近日,北京四维纵横数据技术有限公司与天翼云宣布完成产品兼容性认证。经过双方严格的测试验证,超融合数据库 YMatrix 5.0 与天翼云兼容性良好,可基于天翼云稳定运行。 数据库系统作为基础软件的核心,自主可控势在必行。在此背景下…

【Sentinel】Sentinel与gateway的限流算法

文章目录 1、Sentinel与Hystrix的区别2、限流算法3、限流算法对比4、Sentinel限流与Gateway限流 1、Sentinel与Hystrix的区别 线程隔离有两种方式实现: 线程池隔离(Hystrix默认采用)信号量隔离(Sentinel默认采用) 服…

【Seata】03 - Seata AT 模式全局锁相关知识简单整理

文章目录 前言参考目录版本说明分析整理1、全局锁的引入说明2、全局锁相关源码整理2.1、流程简图2.2、事务分支注册前的 SQL 相关操作2.3、注册分支(获取全局锁) 前言 上一篇文章介绍了 AT 模式的调用流程,但是有个比较重要的概念没有提及到…