この設計手法には、主に 2 つの段階があります。
- アプリケーションの設計
- C/C++ カーネルの開発
最初の段階では、どのソフトウェア関数をデバイス カーネルにマップするか、どれくらい並列処理が必要か、どのように転送するかなど、アプリケーション アーキテクチャに関する重要事項を決定します。
第 2 段階では、カーネルをインプリメントします。この段階では主に、パフォーマンス目標を達成できるようにソース コードを構築し、必要なコンパイラ プラグマを指定します。
図 1. 設計手法の概要
パフォーマンス最適化は、反復作業です。アクセラレーションしたアプリケーションの最初のバージョンでは、最適な結果は得られないことがほとんどです。このガイドで説明する設計手法では、パフォーマンス解析を繰り返し、インプリメンテーションのあらゆる点に変更を加えていきます。