[自动驾驶技术]-8 Tesla自动驾驶方案之硬件(AI Day 2022)

特斯拉在AI Day 2022先介绍了AI编译器,后面又介绍了Dojo的硬件软件,软件部分和AI编译器有部分重叠,本文介绍还是延用AI Day的思路,分为三部分:AI编译和推理,Dojo硬件,Dojo软件。

特斯拉车道检测网络

特斯拉车道网络使用稀疏点预测和计算来识别和预测车道线的位置和形状,极大地减少了计算量,使得网络可以在高帧率下运行,提供实时的车道信息。稀疏点预测和计算是特斯拉FSD推理系统的重要组成部分,通过高效的计算和存储策略,优化了稀疏点的预测和处理过程。

1 稀疏点预测

热图生成:网络首先预测最可能的空间位置点的热图(heat map),这一步骤使用卷积神经网络或其他适合的架构生成每个可能位置的概率分布。

ArgMax操作:对生成的热图应用ArgMax操作,找到概率最高的空间位置索引,这一步骤确定了最可能的稀疏点的位置。

One-hot编码:将找到的空间位置索引转换为one-hot编码。one-hot编码是一种稀疏表示,只在一个位置上有1,其余位置都是0。

2 稀疏计算

嵌入向量选择:使用one-hot编码从嵌入表(embedding table)中选择对应的嵌入向量。嵌入表是在训练期间学习的,包含了各个位置的特征表示;特斯拉在SRAM中构建了一个查找表,设计了嵌入向量的维度,使得可以通过矩阵乘法来实现高效查找。

嵌入缓存:选中的嵌入向量存储在一个token缓存中,这一缓存机制避免了每次迭代都重新计算嵌入,从而提高了计算效率和速度。

矩阵乘法实现查找:通过矩阵乘法实现嵌入查找和计算,这种方式利用了硬件加速器(如特斯拉FSD芯片)对矩阵运算的优化,提高了计算效率。

3 稀疏点处理

特征融合:稀疏点的特征通过自回归和迭代的方式逐步融合,每一步处理都结合前一步的稀疏点特征,逐步构建全局的空间表示。

迭代优化:每次迭代中,网络生成新一轮的稀疏点预测,并将这些点的特征与之前的结果结合,进行进一步处理,这一过程反复进行,直到得到最终的稀疏点集合。

特斯拉的AI编译器

  

特斯拉的AI编译器是为其自动驾驶系统优化深度学习模型推理而设计的,主要目标是将复杂的神经网络图优化为高效的推理代码,以在FSD计算硬件上运行。

1 AI编译器功能

特斯拉的AI编译器旨在处理大规模神经网络图,将其分割、优化并生成适合在其自研硬件上运行的高效代码。这个编译器处理的图包含了数十万的节点和连接,涵盖了自动驾驶系统中的各种任务,包括感知、预测和规划。

2 编译器工作流程

(可结合之前介绍的AI编译器背景内容:[编译器]-2 AI编译器介绍)

1)图分割与划分(Graph Partitioning and Splitting):编译器首先接收一个完整的神经网络图,该图可能包含多个任务和子任务,使用图分割技术,将大图分割成多个独立的子图,每个子图代表一个相对独立的计算单元,可以在硬件上独立运行。

2)子图优化(Subgraph Optimization):对每个子图进行独立优化,利用特斯拉硬件的特性进行定制化调整。具体优化包括操作融合、常量折叠和子图内的并行化等。

3)生成高效代码(Code Generation):编译器将优化后的子图转换为适合FSD硬件运行的低级代码,生成的代码能够充分利用硬件的特性,如硬件加速的矩阵运算和特定的AI计算单元。

4)链接与调度(Linking and Scheduling):将各个独立的子图代码链接起来,形成一个完整的推理程序,通过优化的调度算法,确保子图之间的数据传输和计算顺序最优化,以实现最低的推理延迟和最高的计算效率。

3 常规优化策略

1)操作融合(Operation Fusion):将多个相邻的算子融合为一个算子,减少中间数据存储和传输的开销。例如将卷积操作和激活函数融合在一起,直接计算激活后的结果。

2)常量折叠(Constant Folding):在编译时预计算所有可能的常量表达式,减少运行时的计算量。例如将所有不依赖于输入数据的固定计算提前计算并存储。

3)内存优化(Memory Optimization):优化内存分配和数据布局,以减少内存访问延迟和带宽消耗。利用内存复用技术,使得同一块内存区域可以在不同时间段存储不同的数据,减少总的内存需求。

4)并行化(Parallelization):充分利用FSD硬件的多核架构和并行计算能力,将计算任务拆分并行执行,利用专用AI加速单元的并行计算特性,提高整体计算速度。

5)稀疏计算(Sparse Computation):针对稀疏神经网络图,利用稀疏矩阵乘法和稀疏激活函数等技术减少无效计算,通过只计算非零值的操作,减少总体计算量。

6)流水线和批处理(Pipelining and Batching):利用流水线技术将不同计算任务的执行重叠起来,提高计算资源的利用率。通过批处理技术,将多个输入数据同时处理,减少单次推理的平均计算时间。

DOJO硬件

1 Dojo Tile

Dojo Tile是Dojo加速器的核心计算单元,每个Tile包含25个D1芯片(并行处理大规模的矩阵乘法运算),这些芯片专门设计用于高效的矩阵运算和深度学习任务。Tile的设计考虑了高带宽、低延迟的特点,使其能够在大规模计算任务中保持高效。

2 System Tray

System Tray是Dojo加速器中一个关键的组件,高度集成的系统托盘负责机械和热管理,并集成了高功率传输功能;每个托盘支持六个Tile,总计算能力达到54 PetaFLOPS,配备640 GB高带宽内存。具体特点如下:

1)层压母线(Laminated Bus Bar):这是一种高功率传输组件,能够在极高的功率密度下进行机械和热管理。它的高度为75毫米,能够支持六个Tile,总重量为135千克。

2)数据接口:System Tray提供高带宽的DRAM接口,用于存储训练数据,并通过TTP(Tesla Transfer Protocol)客户协议与训练Tile进行通信,确保了数据能够高效地传输到每个Tile。

3 Exapod

Exapod是Dojo系统的更大级别的集成单元,旨在将多个Dojo加速器组合在一起,总计算能力达到一ExaFLOP,确保大规模机器学习任务的高效处理。配备冗余电源,可以将三相480伏交流电转换为52伏直流电,确保系统在高功率需求下的稳定运行。

DOJO软件

特斯拉全自动驾驶(FSD)软件系统依赖于高度优化的软硬件协同工作,主要组件包括JIT神经网络编译器、LLVM后端、数据摄取流水线等。

JIT NN编译器和LLVM后端:JIT NN编译器即时编译神经网络模型,将高层次的神经网络代码转换为低层次的机器指令。LLVM后端利用LLVM编译器基础设施生成高效的机器代码,使得编译后的代码能够在Dojo硬件上高效运行。

摄取流水线(Ingest Pipeline):负责将数据高效地传输到硬件中,确保硬件始终有足够的数据进行处理,避免因数据饥饿而导致的性能下降。

1 性能优化

性能的提升依赖于利用率(utilization)和加速器占用率(occupancy)。

硬件提供了高峰值性能,编译器的任务是从硬件中提取最大化的利用率,而摄取流水线的任务是确保数据吞吐量足够高。特斯拉的Dojo系统设计用于高利用率处理大规模模型,不仅加速计算密集型部分,还加速延迟敏感部分(如Batch Normalization)和带宽敏感部分(如梯度汇总和参数聚合)。

2 编译器优化策略

1)提取并行性

模型并行:在多个加速器上并行执行不同部分的模型。

数据并行:在多个加速器上并行处理不同批次的数据。

张量并行:在多个加速器上并行处理单个张量的不同部分。

2)SRAM中的张量存储:张量通常在SRAM中分片存储,并在执行层时即时复制。

3)重叠计算和数据传输:在计算的同时进行数据传输,最大限度地利用计算资源。

3 性能测试结果

一句话,特斯拉的硬件性能远超行业其它GPU。

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

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

相关文章

MATLAB导入导出Excel的方法|读与写Excel的命令|附例程的github下载链接

前言 前段时间遇到一个需求:导出变量到Excel里面,这里给出一些命令,同时给一个示例供大家参考。 MATLAB读/写Excel的命令 在MATLAB中,可以使用以下命令来读写Excel文件: 读取Excel文件: xlsread(filen…

Jlink卡死 JFlash keil 盗版JLINK

现象:用Keil打开Jlink配置页,会卡死。 解决方法:用旧版本的Jlink软件,因为淘宝买的很多JLINK下载器是盗版的,不支持新版本的JLINK软件。到https://www.segger.com/downloads/jlink下载旧版本的软件。 如果必须要用新版…

Pytorch深度学习实践笔记8(b站刘二大人)

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:pytorch深度学习 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

上海市港股通交易佣金手续费最低是多少?万0.8?恒生港股通ETF今起发行!港股通的价值如何?

港股通交易佣金概述 港股通的交易佣金可能会因证券公司和投资者的不同而有所差异。 上海市港股通交易佣金最低可以万分之零点八(0.008%),但这需要投资者与证券公司客户经理了解,进行沟通和申请。 一般来说,证券公司…

[CISCN2024]-PWN:orange_cat_diary(glibc2.23.,仅可修改最新堆块,house of orange)

查看保护 查看ida 这里我们仅可以修改最新申请出来的堆块,但是有uaf漏洞。 完整exp: from pwn import* #context(log_leveldebug) pprocess(./orange) free_got0x201F78def alloc(size,content):p.sendlineafter(bPlease input your choice:,b1)p.send…

【Spring Cloud】服务熔断

目录 服务雪崩效应服务雪崩效应形成的原因及应对策略小结 Hystrix介绍Hystrix可以做什么1.资源隔离2.请求熔断3.服务降级 小结 Hystrix实现服务降级方式一:HystrixCommand注解方式1.服务提供者1.1业务接口和业务实现中添加方法hystrixTimeout1.2控制器中处理/provid…

信息安全基础(补充)

)的内容主要有数据备份、数据修复、系统恢复等。响应(Respons)的内容主要有应急策略、应急机制、应急手段、入侵过程分析及安全状态评估等。 面向数据挖掘的隐私保护技术主要解决高层应用中的隐私保护问题,致力于研究如何根据不同…

html5各行各业官网模板源码下载(2)

文章目录 1.来源2.源码模板2.1 HTML5好看的旅行网站模板源码2.2 HTML5自适应医院叫号大屏模板源码2.3 HTML5好看的高科技登录页面模板源码2.4 HTML5宠物美容服务公司网站模板源码2.5 HTML5创意品牌广告设计公司网站模板源码2.6 HTML5实现室内设计模板源码2.7 HTML5黄金首饰网站…

PL5358A 单芯锂离子/聚合物电池保护IC芯片

一般说明 PL5358A系列产品是锂离子/聚合物电池保护的高集成解决方案。PL5358A包含先进 的功率MOSFET,高精度电压检测电路和延迟电路。5358A被放入一个超小的SOT23-5封装,只有一个外部元件,使其成为理想的解决方案,在有限的…

美业SaaS收银系统源码-已过期卡项需要延期怎么操作?美业系统实操

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 1.询问会员手机号和需要延期的卡项 2.PC运营后端-数据导入-修改已售卡项,搜索手机号 3.把需要卡项选…

D - Permutation Subsequence(AtCoder Beginner Contest 352)

题目链接: D - Permutation Subsequence (atcoder.jp) 题目大意: 分析: 相对于是记录一下每个数的位置 然后再长度为k的区间进行移动 然后看最大的pos和最小的pos的最小值是多少 有点类似于滑动窗口 用到了java里面的 TreeSet和Map TreeSet存的是数…

Vue3中如何自定义消息总线

前言 在 Vue 开发中,组件之间的通信是一个常见的需求,无论是父组件向子组件传递数据,还是子组件向父组件传递数据,甚至是兄弟组件之间的数据交换。这些通信需求在构建复杂的 Vue 应用时尤为关键。 Vue 提供了多种组件通信的方式…

Linux系统安装AMH服务器管理面板并实现远程访问管理维护

目录 前言 1. Linux 安装AMH 面板 2. 本地访问AMH 面板 3. Linux安装Cpolar 4. 配置AMH面板公网地址 5. 远程访问AMH面板 6. 固定AMH面板公网地址 1. 部署Docker Registry 2. 本地测试推送镜像 3. Linux 安装cpolar 4. 配置Docker Registry公网访问地址 5. 公网远程…

如何被谷歌收录?

最简单的方法就是提交网站给谷歌,但这种方法可操作空间不大,一天一般也就只有十条左右的链接可以提交,对于一些大网站来说,这种方法显然不适用,这时候GPC爬虫池的好处就体现了,GPC爬虫池对希望提升Google搜…

re:记录下正则的使用方法

1、match pattern r(\d{4})[-\/](\d{1,2})[-\/](\d{1,2}) match re.search(pattern, text) if match:year, month, day match.groups()

SolidWorks教育版 学生使用的优势

在工程技术领域的学习中,计算机辅助设计软件(CAD)如SolidWorks已经成为学生掌握专业知识和技能的必要工具。SolidWorks教育版作为专为教育机构和学生设计的版本,不仅提供了与商业版相同的强大功能,还为学生带来了诸多独…

TypeScript 语言在不改变算法复杂度前提下,细节上性能优化,运行时性能提升效果明显吗?

有经验的专家写的代码,和无经验的新手写的代码,在运行时性能上大概会有多少差异? 个人感觉,常规业务逻辑代码通常可以差 1 倍;如果算上框架的影响,可以差 2~4 倍。 仅考虑业务代码的话,新手容易…

科普:水冷负载的工作原理

水冷负载是一种利用水作为冷却介质,将电子设备产生的热量传递到外部环境的散热方式。它广泛应用于各种电子设备,如服务器、数据中心、电力设备等,以提高设备的运行效率和稳定性。本文将对水冷负载的工作原理进行简要科普。 水冷负载的工作原理…

我被恐吓了,对方扬言要压测我的网站

大家好我是聪,昨天真是水逆,在技术群里交流问题,竟然被人身攻击了!骂的话太难听具体就不加讨论了,人身攻击我可以接受,我接受不了他竟然说要刷我接口!!!!这下…

C#多维数组不同读取方式的性能差异

背景 近来在优化一个图像显示程序,图像数据存储于一个3维数组data[x,y,z]中,三维数组为一张张图片数据的叠加而来,其中x为图片的张数,y为图片行,Z为图片的列,也就是说这个三维数组存储的为一系列图片的数据…