What Would Joe Do?
Peggy Aycinena is a freelance journalist and Editor of EDA Confidential at www.aycinena.com. She can be reached at peggy at aycinena dot com.
Silexica: Holy Grail for Multi-core
May 12th, 2016 by Peggy Aycinena
While he was in California, I had a chance to speak by phone Silexica CEO Max Odendahl. As many know, the problem of parsing code to take advantage of multi-core systems is a massively tough one to solve, one of the Grand Challenges in computing. My conversation with Odendahl was compelling, because it would appear his company has the solution.
Per Odendahl, Silexica grew out of research at RWTH Aachen University: “My professor said, let’s do multi-core, and we did. The feedback on the technology we developed was so amazing, we decided to do a spin-out and launched the company in August 2014.
“Since that time we’ve had our core team working in Germany, but based on our success we are looking to expand further by taking the first steps to do that here in the U.S. where you find 50 percent of the market. And being here in Silicon Valley for 3 months, everybody we need to talk to is just around the corner.
“But we have also started business development in Japan and have an office in Shanghai, because we know that Japan and Asia are big on multi-core.”
I asked Odendahl, if Silexica technology can parse algorithms to match the available cores in a system, does he believe his team has found the holy grail of multi-core?
He said, Absolutely!
And then framed the demand for Silexica’s tools: SLX Parallelizer , SLX Mapper, SLX Generator, and SLX Explorer: “Technology demands are getting very complex as the systems become very smart. Autonomous driving systems, automated self-service robots, and so on – these systems are based on complex algorithms.
“Today, however, designers need someone to help distribute those algorithms across the different cores, determining which part of the software will run on which core.
“We have seen it done manually – the parsing – whether on an Nvidia processor or a TI Keystone device, but there’s been no such thing as a multi-core compiler. There’s been no automated way for mapping the software [across a multi-core system].
“Our solutions can figure it out exactly, however, and also determine how the code will perform on any given core.
“Also, it’s increasingly important to know what happens in the memory hierarchy or on the bus, something which demands a very accurate and fast estimate of what’s going on. You need performance estimation, how long the code will run on any given core, software linearity, and an understanding of the memory hierarchy.
“With an understanding of all of this, we can generate code automatically for the different cores. It has taken a long time to develop this technology and required a huge amount of effort to put it all together.”
To confirm, I asked, we are talking here about heterogeneous cores.
Odendahl said, “Yes, heterogeneous cores in systems which are very complex.
“For instance, heterogeneous systems may include DSP cores which run a different operating system than ARM cores, which run Linux. And each of these cores will have a different communication API, but [for ease of development] you don’t want to be changing your code manually.
“Our tools not only tell you what to do and where, but also generate the code for you, [a task] which requires a huge amount of data. This is the holy grail and seemingly too good to be true, but we can tell you how to parse your software.”
Sounds really complex, I said. Who is Silexica competing with?
Odendahl said, “It’s always tough to evaluate tools in the market. There might be some specific solutions for specific domains, but I have not seen our specific solution anywhere. Of course, our real competition is the in-house team who is doing this work manually.
“Designers can use our solutions for an off-the-shelf platform, or their proprietary, in-house platform which we don’t need to see. And yes, we absolutely honor proprietary platforms – the user just needs to model the platform in XML to apply our solutions.”
And these platforms are where all of the challenges of heterogeneous cores are found today, I asked.
Odendahl said, “Yes, this is where all the problems are, and there are many. People say their first goal is to get performance out of their platform, but there is so much more [to deal with].
“There are also timing constraints, and energy and peak power [concerns], and there is only a certain limit of heat which a system can [tolerate] in a car. All of this needs to be optimized simultaneously.
“Designers need to model the hardware and the software, and meet these constraints, while everything else in the system is distributed as energy efficiently as possible.”
Okay, I said, who are your customers?
Odendahl responded, “There are two different customers: large corporations with their own in-house architectures and a huge amount of customers using commercial off-the-shelf architectures from Altera, TI, NXP, Movidius, etc. With our tooling we can serve both, whereas we are currently focusing on the baseband processing, embedded vision and ADAS industry segments.
“They all have the same requirements – run demanding applications under tight performance and energy constraints to do complex stuff.
“We don’t yet have customers in IoT. Yes, these devices may start with multi-core, but someone has to decide what to process where: What will be in the processor and what will be in the Cloud? This is exactly the same question, whether it’s an IoT device or a sea of systems.”
Given the potential market for Silexica solutions, I asked, how does one prevent large EDA players from observing the company’s momentum and creating their own tools?
Odendahl responded, “We are in an extremely good situation and we have this long research history. No company in the world could do multi-core tooling and reach what we have done, because we have done it without market or product pressure.
“To do what we have done, you must have hardware-modeling experts, a huge amount of compiler technology expertise on your team – independent of cost – and even if you had all of this, it would still be difficult.
“This kind of technology can only come from spin-offs. The big tooling guys like Cadence and Synopsys would never be able to develop these solutions in-house. Silexica is not threatened by the big companies, because we know just how complex it all is, how difficult it is to do what we are doing.”
What do I actually get from Silexica if I become a customer? I asked.
“First of all, a huge amount of compiler technology,” Odendahl said, “and a beautiful interface that will analyze your code and make wrapping decisions so it doesn’t have to be sent out [for manual parsing].
“Of course, we license our tooling following the typical EDA model to our larger customers. But we’re really looking for corporate partners where we can incubate our tooling in the midst of their tooling.”
“We’re not doing a better compiler, or a better high-level compiler,” Odendahl clarified, “we’re building totally new technology that sits on top of existing tooling.”
If EDA is not presenting competition, I asked, could other universities develop competing solutions?
Odendahl said, “Yeah, there are lots of things happening in Europe and in the U.S. – at Berkeley, for instance. And yes, as you said, this is the holy grail that a lot of people have been studying in computer science.
“But looking at the papers we have presented, we continue to have confidence [in the uniqueness] of our technology. And even if competitive technologies come from other universities, we definitely have the head start here. We have very good reason to be confident.
“It’s also a brilliant set-up that our two co-founders – one is a professor in Aachen and one is in Dresden – will continue to do research in this field.”
And the name, I asked, why Silexica?
Per Odendahl: “Silex is a part of silicon, while lexical analysis is a specific compiler phase, so Silexica describes in a sense what we are doing: a multi-core compiler.”
How many cores, I asked, are actually in multi-core systems today?
Odendahl answered, “Mobile phones today can have up to 8 cores, a base station can have hundreds of cores, and even more complex systems can have 1000 cores or more.”
And what about all of the legacy code out there, I asked. What do we do with that?
Odendahl concluded, “This is an important question. If you’re starting with legacy C Code, the question is how can you get parallelism? Silexica has a product offering for that as well.
“The SLX Parallelizer can take existing legacy C code and semi-automatically convert this into a parallel specification, again hiding the complexity of paralllelism and multi-core platforms.
“Whether dealing with legacy code, or new code, our solutions means a programmer doesn’t need to care if the system will be single-core or multi-core. We have the answer.”
Odendahl said, “We will have a strong presence at DAC!”
Look for them there.