中文 英语

fpga在汽车中的用途、限制和问题

什么地方有效,什么地方无效,什么地方选择模糊。

受欢迎程度

可编程逻辑在汽车应用中是至关重要的,因为汽车应用的更新和方向几乎是不断变化的,但这项技术的具体应用领域已经成为一个移动的目标。

这在汽车行业并不完全令人惊讶。汽车制造商正在断断续续地转向电气化和提高自动化水平,有时在方向上有很大的波动。什么样的处理器或加速器效果最好,公司愿意在多大程度上信任人工智能或无线更新,这些都因时间、公司以及当前竞争环境的需求而异。

梅根·达加说:“这个磁场在持续运动,抑扬顿挫的他是负责人工智能推理的产品管理总监。“每天你都会听说一个新的人工智能网络即将问世,它最适合于特定的性能和准确性。各层也在适应。曾经有一段时间,它都是关于完全连接的层。然后,有一个移动到更多的卷积层,最小化全连接层。随着我们进一步深入,我们会发现有一些基于时间序列的层也有适应性,这就是循环神经网络。但在这一切的底部,是某种矩阵乘法。”

人工智能已经受到了很多关注,因为它有可能让世界更接近全自动驾驶汽车。随着人工智能算法的不断变化,自动系统的某些部分显然应该在可编程设备中实现。但哪一部分还不清楚,因为正如汽车制造商发现的那样,人工智能并不总是完美的。

“人工智能非常有前途,它在准确性方面有自己的魔力和秘密,”福特汽车副总裁伯克哈德·胡恩克(Burkhard Huhnke)说Synopsys对此.“当涉及到嵌入式视觉时,我们知道识别率高于97%,这很好。但是那3%呢?如果你没有额外的信息,你怎么能判断你在哪里?这就是为什么oem通常更喜欢更确定性的解决方案,而不是AI解决方案作为识别算法的基础。AI加上两者的组合实际上是最好的解决方案,因为与之前的数据相比,AI很快就会给你一个暗示,表明某些事情进展得不太顺利。这是一个安装在船上的健康监控器,可以持续比较生产数据和当前现场数据。”

人工智能,至少在目前的发展状态下,也是一个黑盒子。“你不能准确地定义人工智能的失败率和精度,”胡恩克说。“重要的是要认识到你在未知情况下处理的新场景。如果这不是内置的,并且你不能从你安装的系统中学习,你需要将场景上传到云端,并检查你的计算机之前是否已经识别了它。利用云的力量有助于在当前情况下增加知识。”

可编程逻辑已经在汽车发动机控制单元中应用了几十年,特别是在发动机控制方面。软件漏洞被识别出来,产品稳定下来,之后才开始真正的扩大规模。

“六个月后,OEM会将其改为固定电子产品和芯片设计ASIC这已经不能再被编程了,”胡克说。“但随着时间的推移,这辆车会越来越旧。那么,如何利用更新的软件来适应新的机遇呢?与智能手机相比,它是有限的。”

David Fritz,高级自动驾驶汽车SoC负责人Mentor是西门子旗下的企业对此表示赞同。他说,可编程逻辑目前主要用于汽车原型设计,非常早期的研究车辆。“这是工程团队试图理解的时候机器学习试图理解人工智能推理是如何在我们不知道自己需要什么的前提下工作的,所以让我们有一些可重新编程的东西,并用它来找出我们要去的地方。这个过程大部分已经被GPU所取代,这意味着我们可以通过改变软件并在GPU上运行算法来获得非常高的性能,而不是编程FPGA。虽然GPU的性能非常高,但它们的功耗也非常高,大多数oem和一级制造商都想要一个不需要GPU的解决方案。几乎所有和我们交谈过的人都在考虑使用加速器。它可以是一个网络处理单元,也可以是一些定制的东西。”

但汽车也正变得越来越像消费设备,因为它们几乎随时都会进行无线更新,以添加新功能和修复错误。他说,随着开源进入汽车领域,需要保护漏洞,并安全地关闭大门,以防存在无法被黑客攻击的在线连接。

这就是fpga开始让自己看起来有吸引力。“自动驾驶汽车在很大程度上依赖于机器学习,每一辆新车在每一种新情况下都可能对共享知识库做出贡献,”特斯拉的产品经理Tobias Welp说OneSpin解决方案.“fpga为许多应用提供了灵活性,因为硬件和软件都可以重新编程。当知识或算法得到增强时,重新编程fpga有可能保持自动驾驶处于持续改进的状态。”

但也有权衡。验证在这种情况下成为一个连续的过程。Welp说:“每次设计改变时,都必须运行完整的验证套件(静态、正式和模拟)。””正式的还必须进行等效性检查,以确保fpga没有实现错误、安全漏洞或潜伏的硬件木马。最后,在将更新发送到现场之前,重新编程的fpga必须在测试车辆上进行广泛验证。”

卡在十字路口
目前,这类决策在自动驾驶领域被搁置。大型汽车制造商已将自动驾驶汽车的推出计划推迟到至少下一个十年。

“当我们一年前开始进入这个领域时,我们与汽车客户进行了交谈,每个人都直接进入了4级和5级自动驾驶,”通用汽车的首席执行官杰夫·塔特(Geoff Tate)说Flex Logix.“他们都打算自己定制芯片。他们都在寻找推理加速的IP许可。这发生了巨大的变化。我不知道现在有谁想在汽车领域做ASIC。所有人都告诉我们,他们将生产自己的芯片,现在都转向购买现成的芯片,几乎所有的大型汽车公司都更专注于驾驶辅助。”

泰特表示,如果今天的汽车有推理功能,它可能更多地用于自动制动系统的辅助。“如果你看到一个行人进入了汽车的路径,它就会踩刹车,这与自动驾驶不同。它帮助司机,这使得解决方案更简单。自动驾驶汽车将会出现,但最初的热情已经消退,完全自动驾驶还有很长的路要走,很多努力都转移到了更实际的事情上。此外,汽车公司认为他们只需要授权一些知识产权,然后把芯片组装在一起,就可以了。他们发现推理本身是一件非常具有挑战性的事情,为什么任何汽车公司都能比专注于推理的人想出更好的推理芯片呢?人工智能部分实际上只是一个子集。你必须能够探测和识别物体,这本身就是一项复杂的任务。当你探测到一个物体时,你会怎么做?这可能是一个更复杂的任务。 There’s a whole decision process that has to take place when you’re tracking this object. Suppose you’re just driving down the street and you see somebody on the sidewalk coming up to a crosswalk. At what point do you decide that you need to stop?”

越来越多的驾驶员辅助功能正在以更合理的速度向自动驾驶汽车发展。他说:“你让每个人都对这项技术感到舒服,对这项技术的可行性感到舒服。”“以特斯拉为例,当你加入足够多的功能时,比如车道偏离,你可以感知你是否在车道上,你是否正在离开车道,你可以检测物体,你可以开始像特斯拉一样自动驾驶。但你不能像有些人那样让别人坐在后座上。它还没有完全烤熟。”

汽车AI加速器
从技术上讲,某些操作是不变的,重要的是如何操作它们。数据操作在汽车应用中是一个非常重要的方面,构件已经存在,因此可能不需要可编程逻辑器件。

Cadence的Daga说:“如何以最有效的形式安排特定层的数据是可编程性方面的问题。”“这就是你可以照顾这些非常突出的层的方式,只需要一个或几个构造块。这也是在过去的12到18个月里,加速器的一个大趋势。工程团队正在努力从安全和安全的角度来制造加速器,他们知道有一些核心功能可以用不可编程的方式来制造,并放在一边。还有更大的可编程性。硬件逻辑旁边肯定有一些整数,是可编程的。对于某些功能,每瓦性能和恒定的绝对功率是至关重要的,那么你就会选择嵌入式平台,因为这是你获得最佳电力利用、电力效率和最佳能源视角的地方。”

东芝(Toshiba)等公司是汽车生态系统的供应商,他们公开表示,他们正在使用属于这一保护伞下的ip来解决视觉应用问题。

可编程逻辑在汽车中的作用
那么,可编程性究竟在汽车领域的什么位置呢?目前答案还不清楚。

“可重新编程意味着更高的成本,”Synopsys的Huhnke说。“这也意味着出现漏洞的风险更高。如果你看看所有的安全方面,我不确定把硬件装进你的车是否是最聪明或最安全的方式,特别是当我们谈论自动驾驶接管时。我很害怕在这个等式中加入一个额外的变量,可重新编程的硬件。至少就目前而言,它太复杂了,我宁愿让硬件平台先修复几年,然后再在此基础上进行软件更新。如果两边都有灵活性,就会增加很多额外的复杂性。即使在组织内部,处理如此复杂的工作,也非常困难。”

并非所有人都同意。Flex Logix的Tate坚持认为fpga将进入汽车。“除了英伟达(Nvidia)的gpu、赛灵克斯(Xilinx)和英特尔/Altera芯片,汽车公司还必须选择一些可编程解决方案,”他说。“所有的驾驶算法都在快速变化,你无法使用硬连线的解决方案。无论你使用的是Mobileye、英伟达(Nvidia)还是Xilinx,重点都是让一些东西可编程,因为当汽车真正投入生产时,你可能已经提出了更好的算法。”

塔特说,oem厂商可能不得不冻结硬件,但软件可能仍然可以发展到以后的时间。“总是会有更新,就像特斯拉在你拥有汽车的时候更新他们的软件一样。这很可能是一个不断增长的趋势。目前,汽车市场将是可编程的现成芯片。英伟达使用GPU技术,因为这是他们擅长的。恩智浦使用微处理器技术,因为这是他们擅长的。Xilinx使用FPGA技术,因为这是他们擅长的。他们都在争取设计成汽车。如果ASIC市场发展起来,那可能是在设计变得更加稳定、激进的创新已经过去、算法被充分理解的时候。这样一来,汽车公司就更容易制造自己的芯片,产量也会提高。”

另一方面,库尔特舒勒,营销副总裁Arteris IP通过大量的定制ASIC活动,我们已经看到开发正在快速朝着优化的方向发展。

Shuler说:“一些公司已经超越了单芯片的能力范围,开始考虑多芯片解决方案,但一切都围绕着功耗、带宽、延迟和功能安全的优化。”“当你使用FPGA时,最大的问题可能在电源方面。与ASIC中类似的一组逻辑相比,在FPGA中,你基本上需要打开和关闭更多的晶体管。这是潜在的技术问题。我们确实看到有人在FPGA上做事情,验证架构,但不像我们大多数客户那样在大的处理上做得那么多。他们用传感器做了一大堆物体检测和分类,然后把它转换成中间格式,数据格式,XML或其他格式。他们把信号发送给感应融合大脑接收所有信号。那些传感器融合大脑,还有传感器他们自己,都有自己的小大脑,没有很多这样的大芯片,他们试图优化。fpga很适合尝试一些东西。”

他说,在数据中心,情况就不一样了。“有很多人工智能处理配套芯片都有一个大型FPGA组件,就像微软在热芯片大会上所说的那样。即便如此,这些东西最终也会成为asic,因为他们缩小了他们试图做的事情。当你处于探索阶段时,fpga是有意义的。但即使在数据中心,我们现在看到的是他们真的很关心电力。他们所做的是,例如,在这个硬件芯片中有一大堆处理引擎和数据流引擎。数千,甚至数百万。有不同的排列和组合,不同的类型。有些东西是可编程的,有些东西几乎是随机的——你翻转一些控制和状态寄存器来设置你想要的东西。你通过管道输入数据,然后输出数据,然后硬件尽可能多地管理数据流,因为每次你处理管理数据流的软件时,你都会减慢速度。”

当涉及到汽车时,人们的决定往往要保守得多。舒勒说:“当他们输入这些人工智能算法时,任何这些东西都会同时运行多个算法,他们会对这些算法进行验证。”“这就是为什么有这样的标准SOTIF而且UL 4600.假设你有一个在硬件上运行软件构建的系统,你正在验证它以确保汽车能够工作。是的,可能会有空中更新。但是在它们投入使用之前,必须有人在系统层面对它们进行测试和验证,而不仅仅是在软件测试层面和硬件验证/再验证层面。目前还没有关于如何做到这一点的行业标准最佳实践,也没有一个您可以说您通过了的检查清单。每个公司或价值链中的每个参与者都必须做自己的事情。但同样,这是软件更新。”

结论
Mentor的Fritz表示,归根结底,对于自主功能来说,可编程逻辑并不节能、成本低、面积小或热效率高。“所有这些都是不在大批量生产中使用它们的理由。”

但可编程逻辑真正开始有意义的一个领域是在神经网络他说。“它们有一种固定的结构,但随着网络的额外训练,每个节点的权重会发生变化。所以问题是,“如果我想对我的神经网络权重进行空中更新,我该怎么做?”一个选择是flash,但flash在这种环境下存在问题。使用FPGA来存储推理引擎的权重作为训练的结果,这是有意义的。你可以开始看到这种嵌入式FPGA在很多神经网络计算机芯片中实现。这样一来,他们就有了一些灵活性,可以进行额外的培训,但他们不必支付在FPGA上进行所有计算的成本,这不是最有效的方法。”



留下回复


(注:此名称将公开显示)

Baidu