ソースコードの変更
この記事は、インテル® ソフトウェア・サイトに掲載されている「Expectations for User Source Code Changes」の日本語参考訳です。
はじめに
ほとんどのコードは、多少変更するか、もしくは全く変更しなくても、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー上で動作しますが、効率良く実行するにはソースコードを変更しなければならないでしょう。この記事では、アプリケーションのパフォーマンスを最適化する、アルゴリズムに関連したソースコードの変更について、一般的なトピックを紹介します。
トピック
アプリケーションのパフォーマンスが最適でない理由の 1 つに、コードがメモリー帯域幅によって制限されている可能性があります。これは例えば、キャッシュミスにつながるキャッシュ階層に対して、コードがブロッキングされていない場合に起こります。別の理由として、不規則なメモリーアクセスにより、コードの一部のみがベクトル化される場合が挙げられます。
どちらの場合も、パフォーマンスを向上するには、プログラマーによるアルゴリズムの変更が必要です。 アルゴリズムの変更に関する詳細は、次の論文をご覧ください。
ISCA 2012 の論文: 「Can Traditional Programming Bridge the Ninja Performance Gap for Parallel Computing Applications?」 (2012 年 6 月)
まとめ
メモリー帯域幅により制限されるコードは、パフォーマンスの低下を引き起こします。ソースコードの変更は、可能な場合、これらのボトルネックの一部を排除し、コンパイラーによるアプリケーションの最適化を補助するようにします。
次のステップ
この記事は、「Preparing for the Intel® Many Integrated Core Architecture」(英語) の一部「Expectations for User Source Code Changes」の翻訳です。インテル® Xeon Phi™ コプロセッサー上にアプリケーションを移植し、チューニングを行うには、各リンクのトピックを参照してください。アプリケーションのパフォーマンスを最大限に引き出すために必要なステップを紹介しています。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。