This article is part of the Ada and SPARK topic in the TechXchange on Embedded Software
A whitepaper on the use of SPARK by NVIDIA is available from Adacore.
NVIDIA has been involved in the design of advanced automotive systems since these platforms required higher levels of compute performance, especially with the incorporation of machine learning (ML) into these solutions. NVIDIA founder and CEO Jensen Huang announced a collaboration with Mercedes-Benz at this year’s Consumer Electronics Show (Fig. 1).
1. Mercedes-Benz Executive Vice President Sajjad Khan (left) and NVIDIA founder and CEO Jensen Huang (right) highlight their plans for next-generation AI cars and the new breed of mobility solutions.
NVIDIA’s DRIVE AGX Pegasus and Xavier (Fig. 2) hardware is available in a range of scalable hardware platforms that target autonomous vehicles and advanced driving systems. These platforms incorporate NVIDIA’s Xavier processors with the next-generation TensorCore GPUs.
Hardware is only part of the solution. NVIDIA has an extensive array of software, including ML support such as its TensorRT high-performance deep-learning inference system.
2. NVIDIA’s DRIVE AGX scalable hardware targets autonomous vehicles and advanced driving systems.
High reliability and safety-related systems require corresponding software support. One area that requires this type of support is avionics. Avionics systems generally need a significant amount of software, but self-driving cars and advanced automotive systems will actually have a larger amount of software to handle equally critical safety and reliability concerns.
Shri Sundaram, Product Management Leader for NVIDIA DRIVE PX AI, recently wrote a blog entitled "Maximum Security Vision: Securing the Future of Safe Autonomous Driving." It addressed the collaboration of NVIDIA and AdaCore to leverage Ada and SPARK programming languages for software security.
Shri notes, “As this software becomes more complex, there’s a greater chance for human error, opening up more potential for security and safety risks.
“To ensure that this vital software is secure, NVIDIA is working with AdaCore, a development and verification tool provider for safety- and security-critical software. By implementing the Ada and SPARK programming languages into certain firmware elements, we can reduce the potential for human error.”
“Self-driving cars are complex and require sophisticated software exceeding the most rigorous standards out there,” said Daniel Rohrer, vice president of software security at NVIDIA. “Ada and SPARK bring exciting possibilities to address the critical needs of this ecosystem.”
I’ve written a number of articles over the years about Ada and SPARK, covering topics like potential cost savings and addressing complex systems, in addition to reliability and safety aspects of the languages. SPARK is actually a subset of Ada that’s designed to be mathematically proven to be error-free. Provability is facilitated by a feature called ”contracts” that was introduced in Ada 2012.
Interest in Ada and SPARK has been on the rise in the automotive space, in addition to the other non-avionic and military spaces that have been the primary areas using these languages. This makes sense, given the level of complexity required for self-driving systems in terms of the amount of code that will be needed to support them.
This article is part of the Ada and SPARK topic in the TechXchange on Embedded Software