Autonomous cars will require lots of computing power, with hundreds of sophisticated chips splitting up algorithms and running them in parallel. The strategy seems straightforward: replace microcontrollers with multicore chips that excel at crunching data from cameras and other sensors.
But it's not so simple. Matching algorithms with the right computing cores is still an inexact science, requiring lots of experience and a little guesswork. Software engineers face stiffer challenges with heterogeneous chips, which can combine graphics, signal processing, and programmable cores on the same silicon.
A small start-up called Silexica is trying to sell automakers on tools that automatically optimize code for multicores. The firm recently introduced its SLX Automotive Development package, which aims to help programmers with advanced driver assisted features like collision avoidance and blind-spot warnings as well as optimizing legacy code.
“In the old world of power trains, there’s a huge amount of legacy code, 30 years in the making and written by a mechanical engineer who wasn’t thinking about multicore,” said Maximilian Odendahl, one of Silexica's founders and its chief executive, in a recent interview.
Today, application engineers are the ones responsible for assigning the code to multicores, feeding it into compilers for each individual core. Silexica's tools make the decisions automatically by generating code, mapping it in parallel processors, and splitting it up for maximum performance.
Together, the company's tools act almost like a multicore compiler, which it has also aimed at telecommunications and machine vision applications. Other Silexica tools predict how code will react to new hardware.
Its automotive software riffs on these basic functions, providing source-level static and dynamic analysis tools and visualizing component relationships. Other features convert code from simple microcontrollers into the right format for multicores, making it easier for companies to add the latest sensors and processors to vehicles.
“We believe our key differentiator is working on code directly,” Odendahl said. Silexica’s tools, however, still need models for mapping and testing code, and the new automotive tools are shipping with high-level models of Infineon’s Tricore and Aurix chips.
The auto industry is not taking technology shifts lightly. In March, major automakers drafted the Autosar Adaptive standard, which contains code for linking multicores in advanced driver-assisted systems. These systems, which take cues from radar as well as cameras and other sensors, cannot always be handled by dedicated chips.
The original standard, called classic Autosar, aimed to create a standard for recyclable software in electronic control units. The companies behind the new standard, which include Ford and Volkswagen, want to extend that concept to autonomous cars. Silexica’s parallelizer tool works on classic Autosar code.
Silexica had lots of time to weigh the challenges of parallel programming. The company’s tools were in development a decade before it spun off Germany’s RWTH Aachen University in 2014. The patience seems to have paid off, with its customers now ranging from Denso and Toyota to Fujitsu and Huawei.
Silexica appears to have few direct competitors, but it is swimming against other currents. For years, large engineering teams have built custom tools for mapping and compiling parallel code, while researchers at the University of California, Berkeley, and the University of Illinois at Urbana-Champaign have been tinkering with open-source tools and parallel languages.
Few have sold multicore tools directly to businesses. Vector Fabrics – a Dutch company whose tools could optimize and locate bugs in parallel code models – could not survive. Almost a decade after it was founded by former NXP Semiconductor engineers, the firm declared bankruptcy last year after funding dried up.
Vector Fabrics never shared its funding or total sales, but its chief Martijn Rutten blamed the failure on weak venture capital infrastructure in the Netherlands. Silexica – which is based in Cologne, Germany, but has offices in Palo Alto – raised $8 million last year in its first funding round.
Silexica says that its software is more polished and comprehensive than alternatives, but it is also helping with industry standards. The company is giving code to the Multicore Association for SHIM, a standard for isolating software from multicore chips. That separation is central to Silexica’s tools and a standard could make such tools more widespread.
More than anything, Odendahl views the company's early momentum as a sign of the times. "Two years ago, an expert that has written code for 30 years might not need our tools" to program multicores, he said. "Now, they need to go to the next abstraction level."
“In a way, multicore programming has been around for a while,” Odendahl said. “In another way, it’s still early.”