SLX

A PROGRAMMING TOOL TO MEET YOUR MOST CHALLENGING REQUIREMENTS

Silexica

Analyze

anim-loader-1
SLX Analyse

SLX understands your application by analyzing its source code using sophisticated compiler technology. An abstract target platform model or execution traces from a board supplement this data with the necessary information to understand the timing behavior on a given target. Next, a pattern-passed framework allows to identify missed parallelism in the code that has not yet been exploited, thus allowing to partition your code for execution on a multicore target. Different levels of parallelism are supported, including task-, pipeline- or data-level parallelism.

These information are 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.

MORE ANALYZE DETAILS

The SLX technology understands the exact behavior of an application by analyzing its source code. It uses sophisticated compiler technology 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 within the memory hierarchy. For parallel applications, existing communication and synchronization patterns are analyzed as well.

A pattern-passed framework allows to identify missed opportunities for additional parallelism. Different levels of parallelism are supported, such as task-, pipeline-, and data- level parallelism for embedded high performance computing code, runnable-level parallelism for AUTOSAR specific 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 Silexica’s platform model or from target traces, supplements the application model with the necessary timing information of the target behavior. Here, not only different types of processor cores are taken into account, but also the different memory hierarchies of the target platform as well as different interconnect architectures. A built-in reconfigurable cache analyzer is included on top of Silexica’s flexible platform modeling infrastructure. It allows users to specify a diverse set of memory hierarchies and configuration parameters.

A large number of different inputs formats are supported. This includes applications written in sequential C/C++, using POSIX threads, dataflow, process networks and task graph specifications and AUTOSAR compliant source code.

Product-Analyse-Static-and-Dynamic-Source-Code-Analysis-analyze

Static and Dynamic
Source Code Analysis

Cache-Memory-and-Communication-Analysis-analyze

Cache, Memory and Communication Analysis

Cross-target-Performance-Estimation-analyze

Cross-target
Performance Estimation

Product-Analyse-C-C-data-flow-task-grapfs-etc-analyze

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

Silexica

Optimize

anim-loader-2
SLX Optimize

Sophisticated optimization techniques use analysis information collected during the previous phase to perform an automatic distribution of an application to a given homo- or heterogeneous multicore platform. Optimizations are driven by performance, power- and memory requirements while different real-time and resource constraints can be respected at the same time.

Based on the optimization results or manual user input, advanced simulation techniques forecast the target behavior of the application and give detailed feedback on its performance and execution flow, task states and utilization of both processors and communication architecture.

MORE OPTIMIZE DETAILS

Sophisticated optimization techniques allow to automatically choose 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, while a large number of different real-time and resource constraints are respected at the same time.

The tooling does not stop in presenting the distribution decisions to the user. Advanced simulation techniques simulate the target behavior of the application and give detailed feedback on the execution behavior, detailed task states and platform utilization of both processors and communication architecture. Advanced 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 allows not only to distribute an application to a fixed platform, but to multiple platforms at the same time as well. 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.

It predicts the effects of changes in the application workload or analyses the potential application speed-up of adding processors, memories, and hardware accelerators into the current multicore architecture. It allows 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.

Power-performance-and-memory-driven-distribution-of-tasks-and-buffers-optimize

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

Powerful-scheduling-analysis-optimize

Optimized task schedules under tight timing constraints

Product-Optimize-Selection-of-DVFS-power-states-to-decrease-peak-and-average-power-optimize

Selection of DVFS power states to decrease peak and average power

Product-Optimize-Architecture-Exploration-and-Multicore-Communication-Analysis-optimize

Architecture Exploration and Multicore Communication Analysis

Silexica

Implement

anim-loader-3
SLX Implement

Silexica’s unique source-to-source compiler technology allows a developer to significantly increase the turn-around time for software changes and his productivity level. Any findings made during the Analyze and Optimize phase are directly tied back to the original source code lines and its variables. This allows unique capabilities in given accurate and comprehensive user feedback and in automatic source-to-source rewriting.

To help users migrate their existing sequential code, powerful hints are shown to the user or the source code is rewritten automatically by inserting pragmas. For existing parallel code, e.g. dataflow, process network or AUTOSAR specifications, the source-to-source framework automatically insert APIs for task management, synchronization, and communication

MORE IMPLEMENT DETAILS

Silexica’s unique source-to-source compiler technology allows a developer to significantly increase the turn-around time for software changes and his productivity level, allowing him to focus on his requirements instead of wasting time in useless iterations.

Silexica’s technology allows to directly tie back any findings made during the Analyze and Optimize phase to the original source code lines and its variables. This allows unique capabilities in given 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. dataflow, process network or AUTOSAR specifications, a powerful source-to-source framework insert 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.

Clear-suggestions-where-to-spend-time-with-direct-link-to-original-source-code-implement

Clear suggestions to spend less time during multicore migration

mapping-dependent-code-generation-implement

Mapping dependent code generation for multicores

automatic-insertion-of-pragmas-openmp-HLS-etc-implement

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

AUTOSAR-support-implement

AUTOSAR support

PRODUCT SCREENSHOTS

P1_1-product
P2-product
P3-product
P4-product
P5-product
P6-product
P7-product
P8-product
M1-product
M2_2-product
M3_2-product
M4-product
M5-product
M6-product
M7-product
M8-product
P9-product
Call graph
Code Analysis View variable access data and cache info
Code Analysis View with cache summary
Code Analysis Graph
Profiling and coverage info in Editor
Task coloring with partitioning info in Editor
Hints view
Hints popup information in Editor
Architecture editor
CPN graph
Gantt chart
Task states
Link utilization
Power Profile
Mapper configuration history for several experiments
Power states
OpenMP pragmas
Silexica

Try now

Technology Preview

SLX.cloud

Try out a subset of the SLX technology online for free. Analyze your C/C++ application, find parallelism and automatically generate OpenMP code.

SLX.desktop

Download a 30-day free trial version of SLX, the innovative programming tool used by software developers around the world. Available for Linux or Windows.

Download
loading image

Request a Demo

Would you like to learn more about features and benefits of SLX? Contact us for a live demo and in-depth discussion about how SLX can help you.

Contact Us
Silexica

Contact

Any Questions?
Silexica Europe
Silexica USA
Silexica Asia
Silexica Japan