技術紹介

オスカーテクノロジー株式会社は、ソフトウェアの高速化と省電力化を自動で同時実現する革新的な技術を備えたOSCARTech®コンパイラによる製品・サービスを提供します。

並列化のニーズ

近年、発熱量の問題などから、単純にクロック周波数を上げるだけではプロセッサの高性能化が難しいことが分かり、単一プロセッサに複数のコアを搭載するマルチコア化が不可欠となっています。OSCARTech®コンパイラは、ソフトウェアの動作を様々な粒度のタスクに分解し詳細に解析するため、各タスクを適切に複数のコアに割り当てることで、高速化するだけではなく、各タスクが必要とする動作周波数や電圧を判断して、それらを細かく制御することによって省電力化することが可能です。

OSCARTech®コンパイラの利点



プログラムを並列化する際には、@OpenMPなどの標準的な並列化APIに基づいてプログラムを修正する、Aタスクレベルの機能を手動で複数のコアに割り付ける、など、ソフトウェア開発者が時間をかけて対応しているのが現状です。
OSCARTech®コンパイラを用いれば、この並列化の作業が自動化でき、かつ、非常に高性能なプログラムを開発できることにより、お客様は以下の利点を享受できます。

(1)開発コストの低減
並列化に伴うソフトウェアエンジニアの工数を大幅に縮小し、お客様のソフトウェア開発コストの低減に寄与します。
(2)time-to-marketの短縮
自動化により、ソフトウェアの並列化に要する時間を短縮することで、お客様のソフトウェア開発期間を大幅に短縮します。
(3)ソフトトウェア品質の向上
人手によるプログラムの並列化には、作業後のソフトウェア品質の悪化というリスクを伴います。OSCARTech®コンパイラはソフトウェアの論理的な動作を保って並列化を施しますので、元となるプログラムの品質を保つことが可能です。

OSCARTech®コンパイラの特徴とその革新性



OSCARTech®コンパイラは、極限まで最適化することを目指した非常に強力な自動並列化ツールであり、以下のような多彩な機能を備えています。

(1)マルチグレイン並列処理
既存の並列化コンパイラが対象としているループ構造はもちろん、プログラム全体を広範囲かつ階層的に解析の対象とすることにより、並列性を貪欲に抽出します。
(2)コンパイラによる省電力化
マルチグレイン並列処理によりスケジュールされた各コアの動作状態に応じて、OSCARTech®コンパイラがきめ細やかな動作周波数・電圧制御コードを生成することで、並列処理との相乗効果が得られる世界初の省電力化技術を実現します。
(3)コンパイラによるメモリ管理
キャッシュおよびローカルメモリの容量に適合したアクセスとデータサイズをOSCARTech®コンパイラが生成する(データのローカライゼーション)機能により、高速なメモリ管理を実現します。
(4)コア間の高速な同期処理
並列処理に不可欠なコア間の同期処理について独自の方式を開発。OSCARTech®コンパイラが同期による遅れを最小化します。
(5)マルチプラットフォーム対応
OSCAR APIと呼ぶ標準APIに基づいた並列化コードを出力することにより、実行環境に依存しないコード生成が可能です。
(6)プロファイルによる自動最適化
OSCARTech®コンパイラが、プロファイリング機能および結果のフィードバック機能を有することで、より最適な並列化コードを自動的に生成します。
(7)グラフによる並列性のビジュアル化
マルチグレイン並列の各タスクの依存関係およびコアへの最適な割り付けをグラフ化し、プログラムの並列性をビジュアルに確認可能です。

「マルチグレイン並列処理」とは?

OSCARTech®コンパイラが備えているマルチグレイン並列処理技術は、コントロールフローやデータ依存関係、プログラム構造、データ構造を徹底的に解析し、その結果をもとにプログラムをマクロタスクという単位に分割、並列化します。マクロタスクには、ベーシックブロック、関数、ループなどの種類があります。
※ベーシックブロックとは、代入文や条件分岐から構成されるタスクを指します。



他社の自動並列化技術はループのみを対象としていますが、OSCARTech®コンパイラのマルチグレイン並列化技術は、関数間やループ間、あるいは関数とループ間、ベーシックブロックとループ間などにおける並列性を抽出することが可能です。したがって、他社のコンパイラよりも多くの並列性を引き出し、より高速なソフトウェアへの翻訳を可能とします。また、他社のコンパイラでは並列化の恩恵を受けることができないループ処理を含まない制御系プログラムも、OSCARTech®コンパイラならば並列化が自動で可能です。



OSCARTech®コンパイラが実現する世界初の省電力化技術

OSCARTech®コンパイラは、マクロタスクの実行コスト(実行時間)をコンパイル時に予測し、各コアへの割り付けを実施します。その際、必ずしもすべてのコアが常に処理を実行している状態になるとは限りません。そこでOSCARTech®コンパイラは、クロックゲーティングやパワーゲーティング、電圧・動作周波数制御(DVFS、Dynamic Voltage and Frequency Scaling)のためのコード(電力制御コード)を生成することでプロセッサの電力を削減します。通常、このような電力制御処理は、OSが介在してプログラムの実行時に実現することが一般的ですが、その場合プログラムの実行時間が予測できないために効率の良い電力制御が難しく、実行性能の低下を伴う可能性があります。OSCARTech®コンパイラでは、すべてのマクロタスクの実行時間を静的に解析するため、アイドル時間をコンパイル時に予測することができ、電力制御コードをプログラム中の最適な箇所に挿入し、非常に効率のよい省電力化を実現しています。