Part 1 – The Technical Challenges
Developing software for Advanced Driver Assistance System (ADAS) has always been a challenge, but the demand to achieve ambitious feature targets in cars while maintaining functional safety is tough. The charge through the next generation ADAS and leading to the Autonomous Drive (AD) vehicle feels like an impossible task today.
OEMs have set targets for smart cars that cannot be achieved with traditional software tools. Today’s path is evolutionary, one step at a time and following an already tough software challenge. Without a revolutionary approach as already demonstrated by some emerging car manufacturers, the incumbent manufacturers will never succeed.
The latest Computer Vision (CV) and Artificial Intelligence (AI) software is available today and still evolving at a great pace. Bringing this to automotive is blocked by the practices used of porting in traditional ways using legacy programming techniques. New car companies can leapfrog the legacy systems, evolving quickly to bring exciting new ADAS features into the car by using modern programming techniques.
Programming all the latest AI and CV accelerators and processors to power the latest AI and CV software algorithms is a challenge in any market. This is now the world of heterogeneous processors and multi-core processing, and with that brings the new challenges of programming, debugging and functional safety.
Continuous Development (CD) is used to describe the ongoing updates and fixes to software in cars post sales. The car’s software is mandated by the United Nations Economic Commission for Europe (UNECE) WP29 which requires software upgrading throughout the lifetime of the vehicle.
Finally, this requires programmers with the required skills for development and future updating of this software. Software engineers today are in demand and having the skills to develop and maintain legacy systems in 20 years will be even more difficult.
What measures enable the revolution and allow continuous development?
Embracing modern open standards software is a must. Several relevant standards already exist that are industry defined and already proven in other market segments. The benefits are extensive and will help develop ADAS and AD achieve their goals much quicker:
- An ecosystem with existing libraries and support
- An existing community of developers with experience using open standards and C++
- Easy porting of advanced AI and CV solutions
- Reduced time to market
- Developers are already collaborating on the latest algorithms and tools using industry defined open standards
- Stable and familiar programming environment
- Ultimately reduced overall cost of development and maintenance
How does centralized vs distributed compute impact ADAS?
Distributed compute for ADAS is a processing architecture with many of the sensing units such as cameras and LiDAR (laser imaging, detection and ranging) contain significant post processing for object analysis and identification, passing limited data (reduced image resolution and metadata) back to the central device for deeper analysis. Centralized compute requires limited analysis from the sensor units, processes the substantial flow of data and manages it in one place.
Centralized compute would be ideal and may be the future, but the processing power required, data sharing between systems and redundancy for safety makes this approach unfeasible.
Distributed systems will remain with us for a long time, doing local processing and extracting the features for subsequent fusion, mapping, decision and control. This can also help with system redundancy for functional safety, ensuring one system failing is not catastrophic.
What are the top challenges bringing for modern ADAS software?
There is a mixture of software programming standards in systems today, from low-level assembly code to C code. Much of the latest development is done with C++ and uses advanced computer vision frameworks. Bringing together all this software with new processor architectures is a huge challenge.
Achieving functional safety for the latest software and processor systems, while testing for robustness is another major challenge. C++ gives programmers a huge amount of freedom, but many techniques need suitable validation for a robust and traceable system. Algorithms coming from research do not consider safe programming concepts so will need to transition using modern safe C++ coding guidelines.
Updates to the car’s software during the lifetime of the vehicle, as demanded by UN WP29 requires new solutions. There are risks that an update to an algorithm may cause another process to fail, or the replacement of a hardware component such as a camera causes the whole system to become unreliable or unstable. This is another major stage of validation required for the next generation of vehicles.
What are the KPIs for moving to open standards?
Time to market is improved thanks to an extensive ecosystem and support available. You are not alone when using open standards, there is a vast community of developers already working in this ecosystem.
Continuous development allowing the system to be improved or upgraded with new features. This approach also allows the next generation of ADAS to substantially benefit from using previous software implementations. The ability of achieving continuous development must be measured by the amount of reuse between implementations, and the time spent porting between different systems or architectures.
Platform choice from the many chip suppliers and software companies providing open standards-based development platforms for programmers well in advance of final system integration.
Maintenance during the lifetime of the vehicle, ensuring software is familiar, readable, and usable without requiring highly specialized engineering skills. Open standards will ensure the software is industry-wide and well defined with reduced overall cost of maintenance.
Total cost is reduced by taking advantage of the previous KPIs leading to an overall financial benefit, including both the development of the car and the subsequent maintenance for the car’s lifetime.
Global flexibility, allowing software and algorithms to be developed or adapted for each country. Most modern software developers use standard software languages, frameworks and tools, so it allows programmers each region to adapt the algorithms and system model per country.
What role does AI play in not only in transforming automotive, but also the entire transportation industry?
AI is everywhere, from supercomputer “Exascale” systems down to your watch. Automotive is embracing it so that vehicles learn from real life how to react, not from a programmer’s set of fixed rules.
But AI is not just limited to cars, the aggregation of data created by all vehicles, road sensors and existing databases will create a new industry with driver data and car data having substantial value for the benefit of all enabled cars.
What software standards can address the growing problem?
So far Nvidia has dominated the programming of advanced compute systems, based on their proprietary language CUDA. They have created an extensive and robust ecosystem that AI developers are familiar with, are well supported with and comfortable to extend their algorithms with.
However, domain specific architectures are becoming available that provide much better overall performance, both for power consumption and functional performance, and at a lower overall price. For these new architectures, avoiding substantial software rewrite is critical and would not achieve continuous development for reuse and maintenance.
Software open standards already exist and are essential for this market. OpenCL and SYCL are well established for AI and computer vision solutions, and highly relevant for automotive. They not only provide a mature and maintainable development platform but there already exists an excellent ecosystem of existing libraries, tools and knowledgebase.
Parts 2 and 3 follow this article and will continue to build a greater context around the need and benefits towards achieving the next generation of ADAS software development.
Codeplay Software provides the tools to enable software to be accelerated by graphics processors or the latest specialized AI processors. Codeplay works with leading technology businesses to build advanced intelligence into devices ranging from smartphones to self-driving cars. For more information, visit www.codeplay.com. Contact Mr. Macfarlane at email@example.com.