SLX

A programming tool
to meet your most challenging requirements

Silexica

Analyze

anim-loader-1
SLX Analyse

SLX tools provide a deep understanding of legacy source code and how it is executed on the very latest SoCs. This unique combination of static and dynamic software analysis provides a complete picture of software interdependencies.  Detailed dynamic code analysis details the understanding of the software flow while static analysis provides visibility into the code structure and static call trees.

SLX further supports the crucial analysis phase by providing application call graphs, memory and cache analysis, detailed variables and memory analysis dependencies, and communication and synchronization pattern analysis.

This information is collected and passed on to the next phase, where the behavior of the application on a given target platform can be further understood and optimized. Read more about the importance of code understanding in multicore programming this technical blog post.

MORE ANALYZE DETAILS

SLX understands the exact behavior of an application by utilizing both static as well as dynamic compiler technology to identify all data- and control-dependencies and build up a complete application model. This includes the call graph of an application, read and write accesses to local, heap and global variables and a complete understanding of memory accesses. For parallel applications, existing communication and synchronization patterns are also analyzed.

A pattern-based framework identifies missed opportunities for additional parallelism with different levels supported such as: task-, pipeline-, data- level parallelism, runnable-level parallelism for AUTOSAR applications or the automatic extraction of pipeline level parallelism targeting FPGA-based platforms. The framework is easily adaptable to the requirements of additional industry requirements

Timing information, either automatically derived from SLX’s platform model or from target traces, supplements the application model with the necessary timing information of the target behavior. This considers different types of processor cores, memory hierarchies of the target platform and the interconnect architectures. A built-in reconfigurable cache analyzer is included on top of Silexica’s platform modeling infrastructure allowing users to specify a diverse set of memory hierarchies and configuration parameters.

Numerous input formats are supported including applications written in sequential C/C++, using POSIX threads, dataflow, process networks and task graph specifications and AUTOSAR compliant source code. For an example of the opportunities with SLX in AUTOSAR projects, watch this short demonstration video.

analyze_icon1-analyze-2

Static and Dynamic
Source Code Analysis

analyze_icon2-analyze-2

Cache, Memory and Communication Analysis

analyze_icon3-analyze-2

Cross-target
Performance Estimation

analyze_icon4-analyze-2

C/C++, data-flow, task-graphs, OSEK tasks, POSIX Threads

Silexica

Optimize

anim-loader-2
SLX Optimize

Advanced optimization techniques use the information collected during the Analysis phase to automatically distribute an application to a homo- or heterogeneous multicore platform. Optimization is driven by performance, power- and memory requirements while at the same time handling different real-time and resource constraints.

Based on these optimization results or manual user input, advanced simulation forecasts the behavior of the application and gives detailed feedback on its performance and execution flow, task states and utilization of processors and communication architecture.

MORE OPTIMIZE DETAILS

Sophisticated optimization techniques allow for the optimal mapping of processes to heterogeneous cores and accelerators, the fastest mapping of logical channels to platform interconnects and memories, and the most effective memory allocation for the buffers used for inter-process communication. Available optimization criteria are performance, power and memory.

SLX tools provide advanced simulation of the target behavior of the application and provides detailed feedback on the execution behavior, task states and platform utilization of processors and communication architecture. (Read more about communication contention in this technical blog post). Memory and contention modeling techniques assure the right trade-offs between accuracy and speed while simulating the target platform behavior. Optionally, measured or estimated power consumption information can be used for a power-optimized distribution with an analysis on required power states and detailed power and energy consumption of the application.

The user-editable, abstract multicore platform model distributes an application to a fixed or multiple platforms at the same time. It enables architects to search for the ideal off-the-shelf multicore platform for a given application and supports “what if” analysis with respect to software and hardware changes to drive exploration, design, and evolution for next-generation multicore systems.

SLX can predict the effects of changes in the application workload or analyzes the potential application speed-up of adding processors, memories, and hardware accelerators into the current multicore architecture. It creates a faster turn-around time compared to state-of-the-art instruction-set simulators by an order of magnitude to significantly improve the design of next generation products.

optimize_icon1-optimize-2

Power-, performance-, and memory-driven SW distribution

optimize_icon2-optimize-2

Optimized task schedules under tight timing constraints

optimize_icon3-optimize-2

Selection of DVFS power states to decrease peak and average power

optimize_icon4-optimize-2

Architecture Exploration and Multicore Communication Analysis

Silexica

Integrate

anim-loader-3
SLX Implement

Findings made during the Analyze and Optimize phases are tied back to the original source code and its variables. This allows unique capabilities in giving precise and comprehensive feedback and automatic source-to-source rewriting.

To help users migrate existing sequential code, guidance is given to the user or the source code can be rewritten automatically by inserting pragmas.

MORE INTEGRATE DETAILS

SLX directly ties back any findings made during the Analyze and Optimize phases to the original source code lines and its variables. This allows unique capabilities in giving accurate and comprehensive user feedback and in automatic source-to-source rewriting.

To help users migrate their existing sequential code, either powerful hints are shown to the user to rewrite their source code or existing code can be rewritten automatically by inserting pragmas for existing shared memory APIs or customized internal workflows.

For existing parallel code, e.g. process network or AUTOSAR specifications, a powerful source-to-source framework inserts APIs for task management, synchronization, and communication, selected from the runtime environments and operating systems available for the target multicore platform. The output can be compiled directly using the platform’s native compiler toolchains and can be deployed to the target.

integrate_icon1-implement-2

Clear suggestions to spend less time during multicore migration

integrate_icon2-implement-2

Mapping dependent code generation for multicores

integrate_icon3-implement-2

Automatic insertion of pragmas (OpenMP, HLS, etc..)

integrate_icon4-implement-2

AUTOSAR support

Silexica

Core Benefits

benefits_icon1-technologies

ABSOLUTE CODE UNDERSTANDING

Our technology analyzes your software to fully understand your code and its interdependencies based on static, dynamic and semantic code analysis.

benefits_icon2-technologies

FASTER TIME TO MARKET

Automatic analysis, partitioning and distribution across cores saves time and resources, improving the productivity of your team and making your software design flow more flexible to hardware changes.

benefits_icon3-technologies

MEET CHALLENGING REQUIREMENTS

Advanced simulation techniques forecast the target behavior of the application driven by various optimization criteria and environment constraints.

Silexica

Products

For System Architects working with software models, or Developers working with in-house, open source, commercial source and binary code, the traditional methods of software optimization are not scalable for multicore systems anymore.

To fully understand the application behavior on a multicore system, a full and precise analysis of software interdependencies is required. In order to understand system behavior and explore opportunities for performance gains and power saving, a tool is needed to provide deep insights into the software interdependencies that occur during execution.

SLX is a multicore development tool that provides software execution insights into hardware and software interdependencies. It allows for code architecting and refactoring to achieve the most efficient utilization of CPU, DSP, FPGA and other acceleration engines on multicore systems.

C/C++

SLX enables the development and optimization of C/C++ applications for heterogeneous multicore by providing unparalleled insights into the hardware and software interdependencies to allow for code architecting to achieve the most optimal performance for a specific code base on a particular multicore SoC.

SLX blends hardware insights that include the target’s processing micro-architecture, resource utilization, and memory and communication latencies with software flow to give deep insights into execution behaviour and identify optimization opportunities through off-loading or optimized distribution and scheduling. To help users migrate and refactor their existing code, or design new code, powerful programming guidance is provided to the user.  Additionally, a source-to-source framework can be used to rewrite the source code automatically by inserting pragmas. SLX uniquely connects its analysis and advice to source code, simplifying the task of understanding the opportunities for optimizing code on heterogeneous multicore systems.

DOWNLOAD PRODUCT BRIEF
c-c++-c-c

FPGA

SLX analyzes C/C++ code and provides a deep understanding of the execution flow, application hot spots and software interdependencies, to enable code optimization for heterogeneous multicore SoCs with FPGAs. Acceleration opportunities are available in FPGA enabled SoCs through partitioning C/C++ code between hardware and software compute elements. Given the number of options multicore SoCs provide, design decisions need to be based on a systematic exploration process. However, this is complex as there is a variety of options in how software functionality can be implemented in hardware.

SLX provides a system view of the application to identify hot spots that offer the greatest potential for increased system performance through FPGA offload. With SLX, users are provided with deep insights into C/C++ software interdependencies needed for code refactoring to implement the changes for FPGA off-loading. SLX optimizes software performance on CPU cores and identifies code to be partitioned. SLX analyzes source code to simplify the task of understanding the opportunities for software and hardware acceleration. Read more in this news story here or watch the FPGA demo video by clicking the button.

DOWNLOAD PRODUCT BRIEF WATCH PRODUCT VIDEO
FPGA-fpga

AUTOSAR Adaptive

Silexica’s programming technology SLX enables the analysis and optimization of Adaptive AUTOSAR applications to give you a deep insight into their behaviour running on heterogeneous multicore platforms.

Adaptive AUTOSAR is a new standardization to enable new types of automotive applications. The object-oriented approach of the AUTOSAR Adaptive Platform provides an optimal foundation for computing-intensive tasks with large amounts of data, e.g. algorithms for automated driving. While such software can be developed faster than before through reuse of existing IP, understanding the behaviour on a multicore system is becoming harder than ever before.

This is where SLX offers unique advantages: It understands your application combining a deep and precise analysis of the source code and how it is executed. This is augmented with your multicore target’s timing and resource usage through the appropriate use of comprehensive abstract models and on-target tracing.

DOWNLOAD PRODUCT BRIEF
autosar_adaptive-adaptive-autosar

AUTOSAR Classic

SLX for AUTOSAR Classic is a programming tool that helps you meet your most challenging system requirements. It improves your time-to-market, your feature set, and lowers costs and power, all while keeping your application compliant with the AUTOSAR stack.

SLX makes it easier and quicker to benefit from AUTOSAR interoperability and legacy systems, while taking full advantage of the very latest multicore ECUs. SLX can operate in three stages to enable you to get the best performance possible from your project.

DOWNLOAD PRODUCT BRIEF WATCH PRODUCT VIDEO
autosar_classic-autosar-classic

AMALTHEA

The AMALTHEA model helps for a smooth integration of multiple applications on one platform. It is becoming more important as heterogeneous computers advance to deliver autonomous vehicles.

AMALTHEA is an open platform and already proven in the automotive sector by Bosch and its partners. It supports interoperability and extensibility and unifies data exchange in cross-organizational projects on embedded multicore systems. SLX for AMALTHEA is now available to help you with your automotive project. Read more here or watch the demo video by clicking the button below.

DOWNLOAD PRODUCT BRIEF WATCH PRODUCT VIDEO
amalthea-amalthea

Scheduling Design

SLX for Scheduling Design provides a number of solutions for predominantly automotive projects that makes it easy to fully analyze and import your applications from a variety of formats. These include Amalthea, Autosar Classic and OSEK/Baremetal C-Code. By giving a full understanding of the dependencies between functions and tasks, the scheduling can be easily optimized.

By using the power of SLX’s Function Level Parallelism and Task Level Parallelism capabilities, power consumption can be reduced while still meeting crucial system latency constraints. SLX for Scheduling Design operates in three phases, Analyze, Optimize and Integrate.

DOWNLOAD PRODUCT BRIEF
scheduling_design-scheduling-design
Silexica

Customer Success Stories

Here is what clients have to say about us

“In the near future, deep challenges lie in optimizing communication and automotive applications onto multicores.

We have successfully integrated the SLX Tool Suite into our multicore development flow to address these challenges.”

NORIYASU NAKAYAMA, FUJITSU

“We have been working with Silexica on power modelling analysis for some time now and are consistently happy with the quality of the estimates produced by SLX and the professionalism of the team that is working with us.

We hope to continue this partnership and make a significant impact on our SoC exploration phase with SLX.”

ALAN GATHERER, HUAWEI USA

“Preparing C/C++ code for FPGAs is often very time consuming as you prepare for the migration.

By using SLX in the future we plan to analyze our applications to make the next steps of performance estimation and hardware/software partitioning quicker with better performance through more pragmas.”

SADAHIRO KIMURA, RICOH

Case Studies

Case Study - Denso
Migrating existing automotive control software to multicore ECUs
Read more
Case Study - Huawei
Using Silexica's tools to accurately estimate power efficiency gains of new technologies
Read more
Case Study - Ricoh
Using SLX to discover and exploit hidden parallelism in the OpenCV computer vision library
Read more
Silexica

Contact

Any questions?
Silexica Europe
Silexica USA
Silexica Asia
Silexica Japan