SLX

A programming tool
to meet your most challenging requirements

Silexica

分析

anim-loader-1
SLX Analyse

SLXは、洗練されたコンパイラ・テクノロジを駆使してソースコードを解析することにより、お客様のアプリケーションを理解します。抽象化されたターゲット・プラットフォームのモデルまたはボード上の実行トレース・データを補足することで、ターゲット・アーキテクチャのタイミングおよび動作を理解します。次に、パターン通過フレームワークを使用することで、コード内で見落とされていた未確認の並列化を突き止めて、マルチコア・ターゲット上で実行するためにコードを分割します。タスク・レベル、パイプライン・レベル、データ・レベルなど、さまざまなレベルの並列化がサポートされています。これらの情報を収集して次のフェーズに渡し、所定のターゲット・プラットフォーム上のアプリケーションの動作を完全に把握することで、最適化を行います。

その他の「分析」詳細

SLXは、ソースコードを解析することで、アプリケーションの正確な動作を理解します。静的コンパイラと動的コンパイラ両方の洗練されたテクノロジを利用することで、全てのデータ依存およびコントロール依存を特定し、完全なアプリケーション・モデルを構築します。これには、アプリケーションのコールグラフ、ローカル変数、ヒープ変数、グローバル変数へのリード/ライト・アクセス、メモリ階層内のメモリ・アクセスの完全な把握などが含まれます。並列アプリケーションの場合、既存の通信パターンや同期パターンも分析されます。

パターン通過フレームワークを使用することで、これまで見落とされていたさらなる並列化可能な個所を検出できます。組み込み式の高性能コンピューティング・コード、AUTOSAR固有のアプリケーションで実行可能な並列化、およびFPGAベースのプラットフォームをターゲットとしたパイプライン・レベル並列化の自動抽出に合わせて、タスク・レベル、パイプライン・レベル、データ・レベルなど、さまざまなレベルの並列化がサポートされています。他の業界で必要とされる要件を追加する際にも、要件に合わせてフレームワークを簡単に適応可能です。

Silexicaのプラットフォーム・モデルから自動的に導出された場合であっても、ターゲットのトレース結果から取得した場合であっても、ターゲット・アーキテクチャの動作に必要なタイミング情報がアプリケーション・モデルに補足されます。ここではさまざまなタイプのプロセッサ・コアだけでなく、ターゲット・プラットフォームの異なるメモリ階層、また異なる相互通信アーキテクチャも考慮されます。Silexicaの柔軟性の高いプラットフォームのモデリング環境上には、再設定可能なキャッシュ解析が内蔵されており、多様なメモリ階層と設定パラメータを用いて所望のアーキテクチャを設定できます。

シーケンシャルなC/C++で記述されたアプリケーション、POSIXスレッド、データフロー、プロセス・ネットワークとタスク・グラフ、およびAUTOSAR準拠のソースコード等、多数の異なる入力形式がサポートされています。

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

統計およびダイナミック
ソースコード分析

Cache-Memory-and-Communication-Analysis-analyze

キャッシュ、メモリ、
通信分析

Cross-target-Performance-Estimation-analyze

Cross-target
性能予測手法

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

C/C++、データフロー、タスク-グラフ、OSEK タスク、 POSIX スレッド

Silexica

最適化

anim-loader-2
SLX Optimize

洗練された最適化技術によって、前フェーズで収集された分析情報をもとに、アプリケーションを所望のホモジニアス、およびヘテロジニアスなマルチコア・プラットフォームに自動マッピングします。パフォーマンス、消費電力、メモリ要件に応じた最適化を行うと同時に、リアルタイムおよびリソースに対する制約も考慮されます。自動マッピングの結果あるいは手動でのマッピング結果に基づき、先端のシミュレーション技術によってアプリケーションがターゲット上でどのように動作するかを予測し、パフォーマンスと実行フロー、タスク状態および、プロセッサとコミュニケーション・パスの両方の稼働率に関する、詳細な解析結果をレポートします。

その他の「最適化」詳細

洗練された最適化技術によって、ヘテロジニアスなコアやアクセラレータへの最適なマッピング、論理チャネルのプラットフォームのインターコネクトおよびメモリへのマッピング、およびプロセス間通信で使用するバッファの最も効果的なメモリ割り当てを自動選択できます。パフォーマンス、消費電力、メモリ要件に応じた最適化を行うと同時に、リアルタイムおよびリソースに対する制約も考慮されます。

ツールを使用することで、各コアへの分割を決定できます。高度なシミュレーション技術によりアプリケーションのターゲット上での動作がシミュレーションされ、実行時の動作、詳しいタスク状態、プロセッサとコミュニケーション・パスの稼働率等の詳細な結果がレポートされます。高度なメモリおよび競合モデリング技法を使用することで、ターゲット・プラットフォーム上でのシミュレーションの精度と速度の適切なトレードオフが確保されます。 オプションで必要な電力状態とアプリケーションの電力、エネルギー消費の詳細を分析することで、実測された消費電力、または推定された消費電力情報をもとに電力最適化を実現する分割を実現できます。

ユーザーが編集可能な、抽象化されたマルチコア・プラットフォームモデルを使用することで、特定のプラットフォームだけでなく、様々なプラットフォームにもアプリケーションをマッピングすることができます。アーキテクトは所定のアプリケーションに対して理想的な市販のマルチコア・プラットフォームを探すことができます。またソフトウェアやハードウェアを変更する際に、「What-If」分析機能を用いることで、次世代マルチコア・システムのアーキテクチャ探求、マッピングの変更等をツール上で実施可能です。

アプリケーションを変更した際のパフォーマンスを予測したり、プロセッサ、メモリ、ハードウェア・アクセラレータを、現在のマルチコア・アーキテクチャに追加した場合の、処理速度向上の可能性を解析できます。最先端の命令セット・シミュレータと比較してシミュレーション速度が桁違いに速いため、次世代製品のデザインを大幅に改善できます。

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

消費電力、パフォーマンス、メモリ要件に応じたソフトウェアのマッピング

Powerful-scheduling-analysis-optimize

タイトなタイミング制約の下で、最適化されたタスクスケジュール

Element 1-optimize

DVFSのパワー・ステートの選択によって、ピーク時および平均消費電力を低減

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

アーキテクチャの探求とマルチコア・コミュニケーションの解析

Silexica

実装

anim-loader-3
SLX Implement

Silexica独自のソースコードからソースコードを生成するsource-to-sourceコンパイラ・テクノロジによって、開発者はソフトウェアの変更時の開発期間や生産性を大幅に改善できます。「分析・最適化」フェーズで見つかった所見は、元のソースコードの各行と変数に直接関連付けられ、ソースコード上から参照可能です。これにより正確で包括的なユーザーへのフィードバックと、source-to-sourceコンパイラを用いた自動書き換えという独自機能が可能になります。ユーザーが既存のシーケンシャル・コードから移行する際の助けになるように、強力なヒントが画面上に表示されたり、プラグマの挿入によるソースコードの自動書き換えが行われることもあります。既存の並列コード(例 データフロー、プロセス・ネットワーク、AUTOSAR仕様など)では、source-to-sourceのフレームワークによってタスク管理、同期、通信のために自動的にAPIが挿入されます。

その他の「実装」詳細 

Silexica独自のソースコードからソースコードを生成するsource-to-sourceコンパイラ・テクノロジによって、開発者はソフトウェアの変更時の開発期間や生産性を大幅に改善できます。無意味な反復作業に時間を無駄使いすることなく、必要な作業に集中できます。

Silexicaのテクノロジを使用することで、「分析・最適化」フェーズで見つかった所見は、元のソースコードの各行と変数に直接関連付けられ、ソースコード上から参照可能です。これにより正確で包括的なユーザーへのフィードバックと、source-to-sourceコンパイラを用いた自動書き換えという独自機能が可能になります。

ユーザーが既存のシーケンシャル・コードから移行する際の助けになるように、強力なヒントが画面上に表示されたり、既存の共有メモリAPIまたはカスタマイズされた内部ワークフロー向けに、プラグマの挿入によるソースコードの自動書き換えが行われることもあります。

既存の並列コード(例 データフロー、プロセス・ネットワーク、AUTOSAR仕様など)では、強力なsource-to-sourceフレームワークによって、タスク管理、同期、通信のために、ターゲットのマルチコア・プラットフォームで使用可能な実行時環境とオペレーティング・システムから選択されたAPIが自動挿入されます。出力については、プラットフォームのネイティブなコンパイラ・ツールチェーンを用いて直接コンパイルし、ターゲットに展開できます。

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

マルチコアの移行時の開発期間の短縮化を明確に提案

mapping-dependent-code-generation-implement

マッピング依存型コード生成マルチコア向けに

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

プラグマの自動挿入 (OpenMP, HLS, など…)

AUTOSAR-support-implement

AUTOSARサポート

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.

SLX C/C++

複雑なマルチコアSoCs上でのC/C++ アプリケーションの最適化はソフトウェアのアーキテクチャーとハードウェア上での振る舞いに関する十分な理解が必要です。今、開発者たちは様々な種類の計算エンジンを構成するマルチコアSoCsに対応したシーケンシャルコードと並列コードの最適化という課題に直面しています。CPU、DSP、およびFPGAの能力を最大限引き出すための鍵は、コードの構造及びアプリケーションあるいはスレッドと変数間の依存関係を完全に理解することにより、ソフトウェア開発の合理化、リファクタリングの理由(ガイド)そしてソフトウェア設計の最適化が必要です。

SLX C/C++ では、他に類を見ない実用的な洞察でヘテロジニアス マルチコア プラットフォーマットに適したC/C++による並列化 アプリケーションの最適化と開発を可能にします。これによって、ソフトウェア開発者は最適化されたソフトウェアアーキテクチャーを実現し、特定のマルチコアSoC上の特有なコードに対するパフォーマンスの改善を実現することができます。SLX はハードウェアの理解とコード分析を融合させ、アプリケーション実行に対するこれまでに無い詳しい情報を提供する一方、十分なトレーサビリティを与えるため、元のソースコードにフィードバックを繰り返し提供します。SLX C/C++は強力なGUIから、コマンドライン、またはアジャイルでの継続的なワークフローに統合して利用することができます。

 

DOWNLOAD PRODUCT BRIEF
front-cc-no-padding-home
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

事例

事例 - Denso
マルチコアECUへのソフトウェア移行
詳細を読む
事例 - Huawei
Silexicaのツールを使用すれば、新しいテクノロジの電力効率向上を正確に予測できます(英語)
詳細を読む
事例 - Ricoh
SLXを使用してOpenCVコンピュータビジョンライブラリで隠された並列性を発見し、活用する
詳細を読む

Any questions?

Silexica

Contact us