インテル® MKL 2017 デベロッパー・ガイド
インテル® MKL には、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをサポートする 2 セットのライブラリーが用意されています。
インテル® MKL がインテル® Xeon Phi™ コプロセッサーに計算をオフロードする方法を制御することができます。オフロード計算を自動的に行うか、コンパイラーによるオフロード支援を使用します。
自動オフロード
インテル® 64 (または互換) アーキテクチャー・システムで Windows® を実行している場合、インテル® MIC アーキテクチャー・ベースのコプロセッサーの存在を自動的に検出して、別途計算リソースを利用するメリットがあるオフロード計算を自動的に行います。このモデルは、プログラムに最小限の変更を加えるだけで、インテル® MKL ルーチンを呼び出すことができます。自動オフロードを有効にするための変更は、環境変数を設定するか、あるいは関数を 1 つ呼び出すだけです。詳細は、「自動オフロード」を参照してください。
コンパイラーによるオフロード支援
このモデルは、インテル® コンパイラーと offload プラグマを利用して、コプロセッサーにオフロードされる関数とデータを管理します。オフロード領域内では、オフロードされるインテル® MKL 関数の入力データと出力データの両方を指定します。インテル® MIC アーキテクチャー用のインテル® MKL ライブラリーをリンクした後、コンパイラーが提供するランライム・ライブラリーにより、関数とデータをコプロセッサーに転送して、計算を実行します。詳細は、「コンパイラーによるオフロード支援」を参照してください。
コプロセッサーへの計算のオフロードに加えて、コプロセッサー上でネイティブに実行するアプリケーションからインテル® MKL 関数を呼び出すことができます。アプリケーション全体をインテル® MIC アーキテクチャー上で実行している状態をネイティブモードと呼びます。ネイティブモードは、ソースコードに最小限の変更を加えるだけで、インテル® MIC アーキテクチャー上で既存のアプリケーションを実行する最も速い方法です。詳細は、「インテル® Xeon Phi™ コプロセッサーのネイティブモードでインテル® MKL を実行する」を参照してください。
インテル® MKL の ScaLAPACK およびクラスター FFT は、インテル® MPI ライブラリーにより提供される別の使用モデルも利用できます。インテル® MPI ライブラリーは、個々のインテル® Xeon Phi™ コプロセッサーを、インテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサーの通常のクラスターノードのように扱います。コプロセッサーでアプリケーションを実行するには、コプロセッサーで MPI ランクを指定し、インテル® MIC アーキテクチャー向けにアプリケーションをビルドして、ビルドした実行ファイルをホストまたはコプロセッサーから起動します。コプロセッサーでの MPI の使用に関する詳細は、インテル® ソフトウェア・ドキュメント・ライブラリー (英語) にあるインテル® MPI ライブラリーのドキュメントを参照してください。インテル® MKL を使用する MPI アプリケーションのビルドの詳細については、「インテル® Xeon Phi™ コプロセッサーでの ScaLAPACK とクラスター FFT の使用」を参照してください。
インテル® MKL のインテル® MIC アーキテクチャーに対するサポートレベルは、以下のように異なります。
最適化
サポート
詳細は、『インテル® MKL リリースノート』を参照してください。
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |