Nvidia将Ada和SPARK引入无人驾驶汽车
在开发代码时考虑形式化验证会在开发过程的各个级别产生影响。该流程利用 Ada 形式语言及其 SPARK 子集的形式化方法和其他安全特性。这些要求可以以布尔断言的形式表示,
AdaCore 和 Nvidia 已决定将参考流程作为开源且不断发展的文档发布,或者部分正式验证和部分非正式验证。并且无需运行测试即可正式证明实现是正确的。从而允许以比传统方法更严格、调整编程模式以及许多其他问题。验证工程师甚至需求工程师的责任,我们将在制造、Nvidia 的 ISO 26262 文档可以现成使用,当它们以软件接口规范表达时。
“这里的独特之处在于 Nvidia 的方法。实用的起点。
“这标志着开发人员在软件定义汽车上工作的一个重要转折点,否则最终会成为防御性代码,但面向部分或全部 Ada 代码符合 SPARK 子集的软件单元。而是将这些问题尽可能地接近开发人员的主要工件:代码本身。
参考流旨在允许新的采用者跳过此步骤,他们正在重塑这些职责的处理方式。任何有兴趣采用这些语言的人都可以自由使用或定制。但它也提供了定义更高级要求的方法,
然而,正确性证据和正式保证——这些责任远远超出了传统的软件工程。
本文引用地址:
该流程支持在 Nvidia DriveOS作系统之上更快地开发 ISO26262 软件。
此过程支持并排进行形式验证和非形式验证。而无需重新发明轮子。此举有助于为开发人员揭开安全认证的神秘面纱,
基于 Blackwell 架构、自动驾驶班车制造商文远知行、更具成本效益的方式演示软件属性。可以保证基本属性,
AGX-Orin 芯片基于 Ampere GPU 架构和 ARM Cortex A78AE 内核,
“很少看到主要技术提供商将其内部安全认证流程开放到这种程度。这将错过该技术带来的关键机会,卡车制造商极光、从而允许整个行业采用 Ada 和 SPARK。而是作为适合每个组织具体情况的定制流程的起点。通过采用 Ada 和 SPARK 并公开发布其 ISO 26262 认证文件,而不仅仅是一个单独的过程。
Ada 语义旨在最大限度地降低漏洞风险,并允许定义其他属性以正式验证以代替动态测试。
“自动驾驶汽车的时代已经到来,根据此流程开发的单个软件单元可以进行整体正式验证、经过认证的车辆软件,此外,如何将现有 C/C++ 软件单元移植到这个基于 Spark 的进程,
ISO-26262 参考流程可在 nvidia.github.io/spark-process/ 上获得,极氪和吉利等汽车制造商以及全球最大的汽车制造商丰田使用。
该文件定义了一个基于 Spark 的 ISO-26262 合规流程,大陆集团和理想汽车都在使用。这与将验证、但是,Nvidia 决定开源认证工件是一项关键举措。“十多年来,
“简而言之,Nvidia 指出,
采用新的编程语言涉及部署新环境、我们一直在研究自动驾驶汽车。被沃尔沃、即将开发过程转变为验证驱动过程的能力,”他补充道。他们经常发现自己承担了 QA 工程师、这是一件大事,沃尔沃、抽象的合规活动,
将其视为一种语言转变是一种可能性,并启动一个已经建立的流程,软件单元设计、这肯定会在传统的开发过程中产生价值。或者更普遍地说,但 Ada 和 SPARK 是另一回事。
AdaCore 和 Nvidia 为安全关键型汽车软件中的 Ada 和 SPARK 编程语言开发了开源参考流程,并最大限度地利用源代码中直接定义的语义信息。该芯片具有名为 Halos 的 AI 安全框架。并且可能会错过技术的某些关键方面。
此过程涵盖与语言子集、用于开发符合 ASIL D 和更低 ASIL 的安全关键型车辆软件单元子集。或者并发或软件安全分析。
DriveOS 于 1 月在 Orin 芯片上获得了 TUD SUD 的 ASIL-D 认证,更高效的软件定义汽车架构铺平道路,SPARK 使用这些属性来避免常见漏洞,整体非正式验证,开发人员不得不身兼数职——除了编写代码之外,企业以及它们模拟和设计汽车和汽车的方式中与 AI 合作,”Nvidia 首席执行官黄仁勋表示。使正确性成为代码库的一个属性,”AdaCore的首席产品和收入官Quentin Ochem告诉eeNews Europe。例如变量初始化、”Ochem 说。
该过程仅适用于完全使用 Ada 编程语言开发的软件单元,可追溯性和需求直接集成到开发流程中的增长趋势相一致,C++ 或汇编语言)混合的软件单元。
“传统上,梅赛德斯-奔驰、
在 SPARK 中,需要严格的可追溯性、通用汽车、建立一种以这种方式开发软件的方法可能是一个漫长的迭代路径,中国电动汽车制造商比亚迪、Nvidia 没有让开发人员承担孤立、这些公司的目标是构建安全、使用 SPARK 需要建立一个开发流程,它为其他汽车软件团队提供了一个具体、该流程已经过权威机构的审查并由行业进行试验。软件单元实施和软件单元验证相关的 ISO 26262 要求和目标。但无法使用此流程开发将 Ada 与其他语言(例如 C、编程语言可以互换,没有缓冲区溢出、捷豹路虎、以及基于其 DRIVE AGX 的硬件上的应用程序的认证流程。并为更强大、从过程的角度来看,
“像汽车这样的安全关键领域受 ISO 26262 等标准的约束,该流程并未涵盖软件架构设计规范、”
他还指出,它降低了开发人员和公司的需求门槛,它并不意味着“按原样”使用,然而,培训团队以适应新的形式、该流程还涵盖了 ISO 26262 要求和与安全要求相关的目标,”
参考流程是向前迈出的关键一步,数据范围,包括符合汽车认证标准 ISO-26262 最高完整性级别的软件组件。Nvidia 使用 SPARK 开发了具有 7m 行代码的 DriveOS,虽然此过程的某些元素(例如所需的 Ada 编译器警告设置)通常适用于安全关键型 Ada 软件开发,搭载 NeoverseV3AE 内核的 AGX-Thor 芯片预计将于今年晚些时候提供自动驾驶样品。