【Apollo】编译 Apollo 源码

https://github.com/ApolloAuto/apollo/blob/master/docs/01_Installation%20Instructions/apollo_build_and_test_explained.md

  • 查看apollo.sh 的用法
./apollo.sh --help

请添加图片描述

  • 可以编译整个模块,也可以单独编译某一个子模块./modules

    为简单起见,Apollo 6.0 及以后引入了 bash apollo.sh build [module] 概念,以取代之前 Apollo 版本中的 build_cyber、build_planning 等概念。

# 普通编译整个模块
bash apollo.sh build

# 仅仅普通编译构建整个规划模块(modules/planning 目录下的所有目标):
bash apollo.sh build planning
apollo.sh build编译类型说明
bash apollo.sh build编译整个apollo项目
bash apollo.sh build [modules]只编译某一个模块,如bash apollo.sh build planning
build_dbg/build_optdebug或者优化模式构建
build_cpu/build_gpu以cpu或者gpu模式联编,bazel build --config=cpu,bazel build --config=gpu
build_opt_gpuopt与gpu 的联编,等同于 bazel build --config=opt --config=gpu
build_nvidia以 GPU 模式运行 NVIDIA GPU 目标机的联编,bazel build --config=gpu --config=nvidia
  • 默认情况下,Apollo 使用 fastbuild 编译模式。因此,当键入 bash apollo.sh build planning 时,实际等效是在指示 Bazel 运行:
bazel build [other options] -c fastbuild //modules/planning/...

当键入 bash apollo.sh build_dbg planning 时,实际等效是在指示 Bazel 运行:

bazel build [other options] --config=dbg //modules/planning/...

请注意,--config=dbg等价于 -c dbg

# 等价
bash apollo.sh build_opt cyber
bazel build [other options] -c opt //cyber/...
  • opt与gpu 的联编
bazel build --config=cpu
bazel build --config=gpu

有三种 USE_GPU: USE_GPU_HOST、USE_GPU_TARGET 和 USE_GPU。

  • USE_GPU_HOST 是一个环境变量,由 docker/scripts/dev_start.sh 决定并传递给 Apollo Docker 容器,用于指示主机(Docker 正在运行的地方)是否支持 GPU。
  • USE_GPU_TARGET 是一个环境变量,由 Docker 容器内的 scripts/apollo.bashrc 决定,用于指示容器是否支持 GPU。
  • USE_GPU 是一个变量,用于指示是执行 CPU 构建还是 GPU 构建。
    当你键入 bash apollo.sh build --config=cpu 或 apollo.sh build --config=gpu 时,构建脚本将检查 Docker 容器的 GPU 能力,并确定你指定的构建能否成功。

如果没有指定是执行 CPU 还是 GPU 构建,构建脚本会根据 Docker 环境的 GPU 能力自动决定。

在支持 GPU 的 Apollo 容器中运行 CPU 构建是没问题的,而在仅支持 CPU 的容器中运行 GPU 构建则会失败。

根据设计,–config=cpu 和 --config=gpu 是相互排斥的。运行 apollo.sh 联编时,最多只能指定其中一个。

  • 可以运行以下测试来检测自己的GPU是否支持

由于 bazel test 继承了 bazel build 的所有选项,因此上述讨论也适用于 apollo.sh test。

# 在 `cyber` 目录下运行单元测试
bash apollo.sh test cyber
bazel test [--config=cpu|--config=gpu] //cyber/...

# 在 CPU 模式下运行所有单元测试
bash apollo.sh test --config=cpu
bazel test --config=cpu //...

 在 GPU 模式下运行规划模块的单元测试
bash apollo.sh test --config=gpu planning
bazel test --config=gpu //modules/planning/...

请添加图片描述

  • 这里我选择了全部普通编译bash apollo.sh build,编译成功以后,将显示如下字样
(02:26:51) INFO: Elapsed time: 849.925s, Critical Path: 164.47s
(02:26:52) INFO: 26743 processes: 18504 internal, 8239 local.
(02:26:52) INFO: Build completed successfully, 26743 total actions
+ set +x
==============================================
[ OK ] Done building apollo. Enjoy!
==============================================

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速多列查找匹配关键字

实例需求:根据第一列专业名称,在“专业分类指导目录”中,针对三个学历层次(研究生、本科生、专科生)分别查找对应专业类别,填写在对应位置,即截图中的黄色区域。 需要注意如下两点: …

linux磁盘空间清理

查看磁盘使用情况 查看磁盘分区上可以使用的磁盘空间 $ df -h若要查看文件类型和block,使用下面的命令 $ df -T查看每个文件和目录的磁盘使用空间,也就是文件的大小。 $ sudo du -sh /* $ sudo du -h --max-depth1 /清理旧的 Snap 包版本以释放磁盘空…

内部集成M0内核MCU Sub-1G 高性能低功耗的单片集成收发芯片DP4306F

DP4306F是一款高性能低功耗的单片集成收发机,集成M0核MCU,工作频率可覆盖200MHz~1000MHz,支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频 率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率…

Rancher中使用promtail+loki+grafna收集k8s日志并展示

Rancher中使用promtail+loki+grafna收集k8s日志并展示 根据应用需求和日志数量级别选择对应的日志收集、过滤和展示方式,当日志量不太大,又想简单集中管理查看日志时,可使用promtail+loki+grafna的方式。本文找那个loki和grafana外置在了k8s集群之外。 1、添加Chart Repo …

浏览器的事件循环机制(Event loop)

事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? …

1- Electron 创建项目、初始化项目

Electron官网 Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron Electron 初始化 初始化项目 - 构造package.json npm init -y 安装Electron模块包 npm i electron -D // 注意!如果报错查看node包是否太高 配置启动脚本 {&quo…

UE5:Lumen 框架

1.Lumen渲染流程框架 2.Lumen基本概念 2.1 LumenCard & LumenMeshCards LumenMeshCards:一组带有方向性的模型简化代理,视模型复杂度不同可能包含6个及以上数量的LumenCard;用来提供光照采样的位置和方向。 2.2 LumenCardPage & Lu…

TrustZone之强制隔离

TrustZone有时被称为一个强制执行的保护系统。请求者表示其访问的安全性,而内存系统决定是否允许该访问。内存系统基于何种方式进行检查呢? 在大多数现代系统中,内存系统的检查是由互连完成的。例如,Arm NIC-400允许系统设计人员为每个连接的完成者指定以下内容: • 安全…

基于开源的JAVA mongodb jdbc 驱动 使用教程

基于开源的JAVA mongodb jdbc 驱动 使用教程介绍 介绍 本文介绍一款开源的基于JAVA的 Mongodb JDBC 驱动使用教程 开源地址 https://gitee.com/bgong/jdbc-mongodb-driver功能价值 与mybaits融合:复用mybatis的功能特性,如:缓存,if动态判断标签等特…

程序员视角体验快速搭建智能客服中心

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 目录 前言基本概念工作原理浅试体验体验收获最后 前言 Amazon Connect是亚马逊云科技…

原生Html 引入element UI + vue3 表单校验设置

效果&#xff1a; 提交时&#xff0c;检验结果展示 html源码 <!DOCTYPE html> <html> <!--带搜索输入框下拉弹窗 --> <head><meta charset"UTF-8"><!-- import Vue before Element --><script src"../js/vue3.3.8/vu…

IDEA中Terminal配置为bash

简介 我们日常命令行都是使用Linux的bash指令&#xff0c;但是我们的开发基本都是基于Windows上的IDEA进行开发的&#xff0c;对此我们可以通过将IDEA将终端Terminal改为git bash自带的bash.exe解决问题。 配置步骤 安装GIT 这步无需多说了&#xff0c;读者可自行到官网下载…

微信小程序单图上传和多图上传

图片上传主要用到 1、wx.chooseImage(Object object) 从本地相册选择图片或使用相机拍照。 参数 Object object 属性类型默认值必填说明countnumber9否最多可以选择的图片张数sizeTypeArray.<string>[original, compressed]否所选的图片的尺寸sourceTypeArray.<s…

CSS中神奇的filter属性

CSS是Web开发中不可或缺的一部分&#xff0c;它可以帮助开发者在页面上添加各种各样的样式和效果。其中一个比较神奇的CSS属性就是filter&#xff0c;它可以让我们实现各种有趣的图形处理效果。 一、filter属性的基础 filter属性是CSS中用于对元素进行图形效果处理的属性之一…

【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归

【【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归 1. autograd 包&#xff0c;自动微分2. 线性模型回归演示3. GPU进行模型训练 小结&#xff1a;只需要将前向传播设置好&#xff0c;调用反向传播接口&#xff0c;即可实现反向传播的链式求导 1. autograd 包&#x…

WPF仿网易云搭建笔记(6):Style进阶详解

文章目录 专栏和Gitee仓库前言Style简单使用样式字典全局样式局部全局样式全局样式穿透 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 WPF想要批量设置样式属性&#xff0c;一共有3个方法 Style样式Template控件模板DataTemplate数据模板 WPF 零基础…

word四级目录序号不随上级目录序号变化问题解决方法

一、word中的几个元素简介 1、word中的列表 如下图所示&#xff0c;代表word的列表&#xff1a; 2、word中的标题 如下图所示&#xff0c;代表word的标题&#xff1a; 3、word中的编号/序号 如下图所示&#xff0c;代表word的编号/序号&#xff1a; 4、word中的目录 如下图…

【Python】人工智能-机器学习——不调库手撕深度网络分类问题

1. 作业内容描述 1.1 背景 数据集大小150该数据有4个属性&#xff0c;分别如下 Sepal.Length&#xff1a;花萼长度(cm)Sepal.Width&#xff1a;花萼宽度单位(cm)Petal.Length&#xff1a;花瓣长度(cm)Petal.Width&#xff1a;花瓣宽度(cm)category&#xff1a;类别&#xff0…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能

文章目录 前言一、搭建PageSpy环境二、接入SDK三、进行远程调试调试控制台网络抓包审查元素 四、延伸 前言 Tauri在Rust圈内成名已久&#xff0c;凭借Rust的可靠性&#xff0c;使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各种前端框架而一战成名。 然而&…

软考机考考试第一批经验分享

由于机考的特殊性&#xff0c;考试环境与传统笔试环境有所不同。下面是与考试环境相关的总结&#xff1a; 草稿纸&#xff1a;考场提供足够数量的草稿纸&#xff0c;每位考生都会分发一张白纸作为草稿纸。在草稿纸上需要写上准考证号。如果不够用&#xff0c;可以向监考老师再次…