Canvas Category Software : Engineering : Autonomous Vehicle
aiMotive is one of the world’s largest independent automotive technology powerhouses working on level-agnostic automated driving solutions. The company delivers an integrated portfolio of software, tools and hardware products complemented by proprietary data management tools, enabling customers to rapidly develop and deploy production automated driving features that combine in-house expertise with aiMotive modular capabilities while achieving substantial reductions in development costs and timescales. The company’s product portfolio has been validated in mass production programs. Its lightweight execution stack and sensor-agnostic, reusable data pipeline accelerate customers’ time to market.
The realities of developing embedded neural networks
With any embedded software destined for deployment in volume production, an enormous amount of effort goes into the code once the implementation of its core functionality has been completed and verified. This optimization phase is all about minimizing memory, CPU and other resources needed so that as much as possible of the software functionality is preserved, while the resources needed to execute it are reduced to the absolute minimum possible.
This process of creating embedded software from lab-based algorithms enables production engineers to cost-engineer software functionality into a mass-production ready form, requiring far cheaper, less capable chips and hardware than the massive compute datacenter used to develop it. However, it usually requires the functionality to be frozen from the beginning, with code modifications only done to improve the way the algorithms themselves are executed. For most software, that is fine: indeed, it enables a rigorous verification methodology to be used to ensure the embedding process retains all the functionality needed.
However, when embedding NN-based AI algorithms, that can be a major problem. Why? Because by freezing the functionality from the beginning, you are removing one of the main ways in which the execution can be optimized.