【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.rhkb.cn/news/129279.html

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

相关文章

第15章_瑞萨MCU零基础入门系列教程之Common I2C总线模块

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

vue3+vite项目运行报错[plugin vite:dep-pre-bundle]

报错截图 原因:vue-i18n 插件于9.5更新,打包和引入方式有改变,所以新启动和新部署的项目都会有这个问题。 解决方式: 1.项目全局搜索:vue-i18n/dist/v ue-i18n.cjs.js 然后将搜索到的代码替换为 :vue-i18…

为特征向量数据(1D数组)叠加噪声实现数据增强

为特征向量数据(1D数组)叠加噪声实现数据增强 日期作者版本备注2023.09.11Dog TaoV1.0完成文档的初始版本。 文章目录 为特征向量数据(1D数组)叠加噪声实现数据增强背景介绍叠加噪声的主要方法高斯噪声(Gaussian Nois…

微服务05-Docker基本操作

Docker的定义 1.什么是Docker Docker是一个快速交付应用、运行应用的技术: 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完…

超详细-Vivado配置Sublime+Sublime实现VHDL语法实时检查

目录 一、前言 二、准备工作 三、Vivado配置Sublime 3.1 Vivado配置Sublime 3.2 环境变量添加 3.3 环境变量验证 3.4 Vivado设置 3.5 配置验证 3.6 解决Vivado配置失败问题 四、Sublime配置 4.1 Sublime安装Package Control 4.2 Sublime安装VHDL插件 4.3 语法检查…

STM32F4X DMA

STM32F4X DMA 什么是DMASTM32F4X DMADMA框图DMA通道DMA仲裁器DMA FIFO DMA传输模式DMA传输方向存储器到存储器存储器到外设外设到存储器 DMA循环模式和普通模式循环模式(Circular)普通模式(Normal) DMA源、目标寄存器增量模式DMA例…

React【组件生命周期 、组件生命周期_挂载、 组件生命周期_更新 、组件生命周期_卸载、表单_受控组件、表单_受控组件处理多个输入】(三)

文章目录 组件生命周期 组件生命周期_挂载 组件生命周期_更新 组件生命周期_卸载 表单_受控组件 表单_受控组件处理多个输入 组件生命周期 每个组件都有自己的生命周期,从“生”到”死“。 在这个过程当中,它会有不同的状态,针对不同的状态…

大型语言模型的幻觉研究|减轻及避免大模型LLM幻觉(二)

“ 本文及上一篇综述了最近关于语言模型中幻觉问题的研究进展,主要集中在ChatGPT发布后的研究。文章讨论了如何评估、追踪和消除幻觉,并探讨了现有挑战和未来方向。希望本文能为对LLM幻觉问题感兴趣的朋友提供有价值的资源,促进LLM的实际应用…

【数学建模竞赛】超详细Matlab二维三维图形绘制

二维图像绘制 绘制曲线图 g 是表示绿色 b--o是表示蓝色/虚线/o标记 c*是表示蓝绿色(cyan)/*标记 ‘MakerIndices,1:5:length(y) 每五个点取点(设置标记密度) 特殊符号的输入 序号 需求 函数字符结构 示例 1 上角标 ^{ } title( $ a…

Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私

1. 引言 Aztec的架构,不同于当前“通过EVM兼容执行环境”所实现的区块链水平扩容趋势。Aztec内部笑称其构建的为首个非zkEVM协议。 Aztec专注于实现: 成为理解和需要智能合约隐私的开发者的终极解决方案。 Aztec为开发者提供构建隐私优先app所需的网…

Java 复习笔记 - 面向对象进阶篇

文章目录 一,Static(一)Static的概述(二)静态变量(三)静态方法(四)工具类(五)static的注意事项 二,继承(一)继…

TortoiseSVN 详细操作指南

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 热爱技术的小郑 1、引言 考虑以下几种情况: 你是否在一个…

Nginx详解 五:反向代理

文章目录 1. 正向代理和反向代理1.1 正向代理概述1.1.1 什么是正向代理1.1.2 正向代理的作用1.1.3 正向代理的基本格式 1.2 反向代理概述1.2.1 什么是反向代理1.2.2 反向代理可实现的功能1.2.3 反向代理的可用模块 2. 配置反向代理2.1 反向代理配置参数2.1.1 proxy_pass2.1.2 其…

华为云云耀云服务器L实例评测|老用户回归的初印象

华为云云耀云服务器L实例评测|老用户回归的初印象 前言一、新面孔1. 云耀云服务器2. 服务器特色 二、上手感官体验1. 性价比感受2. 推荐宝塔面板3. CloudShell登录4. 安全性 总结 前言 其实笔者接触华为云已经很久了,第一次使用的云服务器就是华为云。当…

C# 反射机制

图片来自:https://www.cnblogs.com/tangge/p/3440605.html

探索多态的本质【C++】

文章目录 多态的构成条件虚函数虚函数的重写(覆盖) 虚函数重写的两个例外C11 override和final区分重载、覆盖(重写)、隐藏(重定义)抽象类接口继承和实现继承多态的原理虚函数表 动态绑定和静态绑定动态绑定静态绑定 单继承中的虚函数表多继承中的虚函数表…

视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛,包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …

Ubuntu20.04同时安装ROS1和ROS2

Ubuntu20.04同时安装ROS1和ROS2 Excerpt 每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,不可随便装,ubuntu20.04对应ROS1 noetic和ROS2 foxy版本。_ros1和ros2共存 Ubuntu20.04同时安装ROS1和ROS2共存 文…

Vue+NodeJS+MongoDB实现邮箱验证注册、登录

一.主要内容 邮件发送用户注册用户信息存储到数据库用户登录密码加密JWT生成tokenCookie实现快速登录 在用户注册时,先发送邮件得到验证码.后端将验证进行缓存比对,如果验证码到期,比对不正确,拒绝登录;如果比对正确,将用户的信息进行加密存储到数据库. 用户登录时,先通过用…

[H5动画制作系列] Sprite及Text Demo

参考代码: sprite.js: var canvas, stage, container; canvas document.getElementById("mainView"); function init() {stage new createjs.Stage(canvas);createjs.Touch.enable(stage);var loader new createjs.LoadQueue(false);loader.addEventListener(&q…