コンパイラに関する技術コンサルティング
いわゆる高級言語から機械語命令列への自動変換ツールであるコンパイラは、プログラムの可読性、保守性、可搬性を高く保つことを可能にすることで、ソフトウェア開発者の負担を大幅に軽減することができます。
トプスシステムズ社は、汎用プロセッサ、DSP、アプリケーション特化型のプロセッサ用のコンパイラ開発経験に基づいて、コンパイラに関する技術コンサルティング・サービスを提供しています。
1. コンパイラに何を求めるか?
コンパイラには、主に次の2つの機能が期待されます。
■変換
性能を犠牲にすることなく、プログラマが高位の言語を使用できるようにします。
■最適化
アプリケーションが、使用するコンピュータのアーキテクチャを充分に活用できるよう支援します。
2.最適化の種類
最適化には、主に次の3種類の目的があります。
■実行時間を短くする最適化
■記憶容量を小さくする最適化
■消費電力を小さくする最適化
3.実行時間を短くするには
例えば、HPC等ではプログラムの一部の最適化でも大きな効果を得られる場合があります。
実行時間を短くするには、次のような最適化のアプローチがあります。
-
命令の実行回数を減らす
-
より速い(実行に要するクロック数の少ない)命令を使う
-
並列度を上げる
4.記憶容量を小さくするには
組込みシステム等ではメモリ容量が限られているため、記憶容量をできるだけ小さくしたい場合があります。
このような場合には、プログラム全体に対する最適化が必要になります。
例えば、インタプリタ方式を採用するなどといったアプローチがあります。
5.消費電力を小さくするには、
例えば、携帯電話等のバッテリ駆動型の機器では、消費電力をできるだけ小さくしたいという要求があります。
このような場合には、次のような最適化のアプローチがあります。
-
プロセッサやコンポーネントのアイドル時の無駄な電力消費を減らす(これらを停止させる機械語命令を挿入する)
-
キャッシュ・メモリへのアクセスを削減する
-
システム・バスや外部メモリへのアクセスを削減する
-
演算の投機実行やパイプライン・ストールを削減する
-
プログラムのステップ数を削減する
6.アーキテクチャに応じたコンパイラの最適化
コンパイラの最適化の方法は、使用するプロセッサに大きく依存します。
例えば、次のような最適化が必要になります。
■ベクトル計算機には、ベクトル化
■並列計算機には、並列化
■スーパースカラ型のプロセッサには、命令レベルの並列化
■VLIW型のプロセッサには、より強力な命令レベルの並列化
■キャッシュ、共有、分散メモリのそれぞれに応じたメモリアクセス効率の最適化
■ストリーム型プロセッサには、ストリーミング化
7.コンパイラに関する技術コンサルティング&開発実績
■DSP用のコンパイラ開発技術コンサルティング
■32-bit汎用RISCプロセッサ用のコンパイラ
■64-bitメディア処理用SIMD型プロセッサ用のコンパイラ
■ストリーム型プロセッサ用のコンパイラ
コンパイラに関する技術コンサルティングの詳細は、弊社営業(sales@topscom.co.jp)までお問い合わせください。
|