内容
チュートリアル
インテル® マス・カーネル・ライブラリー (インテル® MKL) を使用した行列乗算
日本語最新ドキュメント

インテル® C++ コンパイラー XE 2013 Linux* 版は、Linux* オペレーティング・システムで C および C++ ソースファイルをコンパイルします。コンパイラーとデバッガーは、IA-32 アーキテクチャーとインテル® 64 アーキテクチャーでサポートされています。
インテル® C++ Composer XE 2013 Linux* 版には、インテル® コンパイラーを使用してアプリケーションを生成する、ステップごとの命令とサンプルコードを含むチュートリアルが用意されています。チュートリアルのソースコードを使用して、コンパイラーを使用してみてください。
製品の使用方法についての情報は、ソフトウェア開発者サポート Web サイト (英語) のナレッジベースやコミュニティー・サイトから入手することもできます。
コンパイラーを使用する前に、ターゲット・アーキテクチャーを引数で指定してコンパイラー環境スクリプト compilervars.sh または compilervars.csh を実行し、環境変数を設定する必要があります。
次の操作は、compilervars.sh スクリプトを使用しています。
ターミナルセッションを開きます。
コンパイラー環境スクリプト compilervars.sh を実行します。
source <install-dir>/bin/compilervars.sh <arg>
<install-dir> はコンパイラーの /bin ディレクトリーを含むディレクトリー構造で、<arg> は以下に示すアーキテクチャーの引数のいずれかです。
ia32: IA-32 アーキテクチャー専用のコンパイラーとライブラリー
intel64: インテル® 64 アーキテクチャー専用のコンパイラーとライブラリー
注: <install-dir> のデフォルトのパスは opt/intel/ です。
インテル® C++ コンパイラー XE 2013 Linux* 版では、インテル® C/C++ プロジェクトをビジュアルでインタラクティブな開発環境で開発、ビルド、実行するための Eclipse* と C/C++ 開発キット (CDT) への統合 (拡張とも呼びます) が提供されています。CDT は Eclipse* に追加され、C/C++ 開発環境パースペクティブを提供します。
注
Eclipse* と CDT はインテル® C++ コンパイラー XE 2013 にはバンドルされていません。これらの製品は別途入手する必要があります。
Eclipse* をシステムにインストールして設定した後、インテル® C++ コンパイラー XE 2013 を使用するように Eclipse* を設定する必要があります。Eclipse* をインストールするには、Eclipse* のドキュメントを参照してください。
インテル® コンパイラーを使用するように Eclipse* を設定するには、次の手順に従ってください。
Eclipse* を起動します。
[Help (ヘルプ)] > [Install New Software (新規ソフトウェアのインストール)] を選択します。
[Work with] フィールドの隣にある [Add (追加)] ボタンをクリックします。[Add Site (サイトの追加)] ダイアログが開きます。
[Local (ローカル)] ボタンをクリックし、install_dir/eclipse_support/cdt8.0/eclipse ディレクトリーを参照します。
[OK] をクリックします。
[Group items by category (項目をカテゴリー別にグループ化)] チェックボックスをオフにします。
Intel (インテル) で始まるオプションを選択し、[Next (次へ)] をクリックします。
インストール手順に従います。
Eclipse* の再起動を求められたら、[Yes (はい)] を選択します。
Eclipse* が再起動したら、インテル® C++ コンパイラーを使用する CDT プロジェクトを作成して作業することができます。
Eclipse* からコンパイラーを起動するには、次の操作を行います。
プロジェクトを開きます。
[Project Explorer (プロジェクト・エクスプローラー)] でプロジェクトを選択します。
[Project (プロジェクト)] > [Build Project (プロジェクトのビルド)] を選択します。
コマンドラインからインテル® C++ コンパイラーを起動するには、次の操作を行います。
C ソースファイルの場合、次のようなコマンドを使用します。
icc my_source_file.c
C++ ソースファイルの場合、次のようなコマンドを使用します。
icpc my_source_file.cpp
コンパイルに成功すると、実行ファイルが現在のディレクトリーに作成されます。
インテル® デバッガーは、グラフィカル環境およびコマンドライン・ツールとして利用できます。グラフィカル環境は Java* アプリケーションで、Java ランタイム環境 (JRE) が必要です。
グラフィカル環境またはコマンドライン・デバッガーを使用する前に、環境変数を設定してからデバッガーを起動する必要があります。
ターミナルセッションを開きます。
上記の「環境変数の設定」で記述されているように環境変数を設定します。
次のいずれかのコマンドを入力します。
idb - GUI モードでデバッガーを開始します。
idbc - コマンドライン・モードでデバッガーを開始します。
以下のチュートリアルには、コンパイラーの機能を説明するサンプルコードが含まれています。
| インテル® MIC アーキテクチャーの使用 | インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー対応のシステムでは、CPU とコプロセッサーの両方でアプリケーションを実行することができます。アプリケーションは CPU で開始した後、ソースコードのユーザー定義セクションをコプロセッサーにオフロードします。
このチュートリアルでは、サンプルコードをコンパイルして CPU とコプロセッサーの両方で実行するアプリケーションを生成します。次に、ソースコードを調査して、ホスト CPU とコプロセッサーの両方で実行するようにセクションを定義する方法を参照します。 注: このチュートリアルを行うには、インテル® MIC アーキテクチャー対応のシステムが必要です。 |
| 自動ベクトル化の使用 | 自動ベクトライザーは、並列に実行できるアプリケーション内の演算を検出し、SIMD (Single Instruction Multiple Data) 命令セットを使用して、シーケンシャルな演算を並列演算に変換します。
このチュートリアルでは、自動ベクトライザーを使用してシリアル・アプリケーションに並列処理を実装し、サンプルコードのパフォーマンスを向上させる方法を説明します。次に、シリアルバージョンと自動ベクトライザーを使用してコンパイルしたバージョンのパフォーマンスを比較します。 |
| ガイド付き自動並列化の使用 | ガイド付き自動並列化は、アプリケーションに実装できるアドバイスを提供します。 このチュートリアルでは、ガイド付き自動並列化レポートに表示されたアドバイスからガイド付き自動並列化を使用する方法を説明します。次に、シリアルバージョンとガイド付き自動並列化機能で提供されたアドバイスを使用したバージョンのパフォーマンスを比較します。 |
| アプリケーションのスレッド化 | インテル® C++ Composer XE 2013 には、並列処理を使用してシリアル・アプリケーションのパフォーマンスを向上できるさまざまなソフトウェア機能が用意されています。OpenMP* は、すべてのアーキテクチャーでマルチプラットフォームの共有メモリー並列プログラミングをサポートする API です。インテル® スレッディング・ビルディング・ブロック (インテル® TBB) は、一般的な並列アルゴリズム・パターンを関数テンプレートの形式で提供します。インテル® Cilk™ Plus は、新規または既存のプログラムに並列処理を実装します。 このチュートリアルでは、OpenMP*、インテル® TBB、およびインテル® Cilk™ Plus を使用してコンパイルすることにより、アプリケーションをスレッド化する方法を説明します。次に、シリアルバージョンとこれらの機能を使用したバージョンのパフォーマンスを比較します。 |
| インテル® マス・カーネル・ライブラリー (インテル® MKL) を使用した行列乗算 | インテル® MKL には、数学計算を行うためのさまざまな種類の演算が含まれています。 このチュートリアルでは、インテル® MKL を使用して、行列の乗算、行列乗算のパフォーマンスの測定、およびスレッド化の制御を行います。 |
以下のドキュメントがあります。
| インテル® C++ コンパイラー XE 13.0 ユーザー・リファレンス・ガイド | アプリケーションをコンパイルする方法、最適化ツールとその他のライブラリーを使用してアプリケーションを最適化する方法、およびすべてのコンパイラー・オプションについて説明します。 インテル® C++ コンパイラーには、man ページも含まれています。man ページの情報を表示するには、「環境変数の設定」で記述されているように環境変数を設定してから、ターミナルセッションで コンパイラーのドキュメントには、コード・カバレッジ・ツール ( コマンドラインから |
| インテル® デバッガーのドキュメント | コードのデバッグに使用できるインテル® デバッガーのユーザーガイドが含まれています。 |
| インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP) のドキュメント | マルチメディア・データ処理および通信アプリケーション向けに高度に最適化されたマルチコア対応のソフトウェア関数から成る機能豊富なライブラリーのユーザーガイドが含まれています。 |
| インテル® マス・カーネル・ライブラリー (インテル® MKL) のドキュメント | 最適化されたスケーラブルな数学関数を含むライブラリーのユーザーガイドが含まれています。これらの関数を使用して、アプリケーションのパフォーマンスを最大限に引き出し、現在から将来のメニーコア・プラットフォームへシームレスにフォワード・スケーリングを提供することができます。 |
| インテル® スレッディング・ビルディング・ブロック (インテル® TBB) のドキュメント | 安定性を備え、移植性とスケーラビリティーに優れた並列アプリケーションの作成を可能にする C++ テンプレート・ライブラリーのユーザー・リファレンス・ガイドが含まれています。 |
| リリースノート | 製品についての最新情報が含まれています。
|
| 付属のサンプル | コンパイラーのサンプル・プロジェクトの一覧が含まれています。サンプルでは、コンパイラーの最適化、機能、ツール、プログラミングの概念を示します。 |
| その他の情報 | この製品の使用方法の参考となるその他の情報を含む Web サイト。インテル® ソフトウェア製品のその他の情報を検索するには、インテル® ラーニングラボ (英語) を参照してください。 |
| インテル® ソフトウェア・ドキュメント・ライブラリー (英語) | ほかのインテル® ソフトウェア製品のドキュメントを含む Web サイト。 |
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品適格性、あらゆる特許権、著作権、その他知的財産権の非侵害性への保証を含む) に関してもいかなる責任も負いません。
「ミッション・クリティカルなアプリケーション」とは、インテル製品がその欠陥や故障によって、直接的または間接的に人身傷害や死亡事故が発生するようなアプリケーションを指します。そのようなミッション・クリティカルなアプリケーションのためにインテル製品を購入または使用する場合は、直接的か間接的かにかかわらず、あるいはインテル製品やそのいかなる部分の設計、製造、警告にインテルまたは委託業者の過失があったかどうかにかかわらず、製造物責任、人身傷害や死亡の請求を起因とするすべての賠償請求費用、損害、費用、合理的な弁護士費用をすべて補償し、インテルおよびその子会社、委託業者および関連会社、およびそれらの役員、経営幹部、従業員に何らの損害も与えないことに同意するものとします。
インテル製品は、予告なく仕様や説明が変更されることがあります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。
本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。本資料で紹介されている資料番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。
インテル・プロセッサー・ナンバーはパフォーマンスの指標ではありません。プロセッサー・ナンバーは同一プロセッサー・ファミリー内の製品の機能を区別します。異なるプロセッサー・ファミリー間の機能の区別には用いません。詳細については、http://www.intel.co.jp/jp/products/processor_number/ を参照してください。
Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
Java は、Oracle および / または関連会社の登録商標です。
© 2012 Intel Corporation. 無断での引用、転載を禁じます。
資料番号: 326976-001JA