インテル® Parallel Studio XE 2018 に含まれるインテル® C++ コンパイラー 18.0 for Windows* リリースノート

同カテゴリーの次の記事

「さよなら Cilk Plus」移行の手順 - 明日のためのその 1

この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® C++ Compiler 18.0 for Windows* Release Notes for Intel® Parallel Studio XE 2018」の日本語参考訳です。


このドキュメントでは、製品の新機能、変更された機能、注意事項、および製品ドキュメントに記述されていない既知の問題について説明します。

詳細は、パッケージに含まれるライセンスと本リリースノートの「著作権と商標について」を参照してください。インテル® C++ コンパイラー 18.0 のこのリリースに関する情報は、次のリンクから概要を表示できます。

変更履歴

インテル® C++ コンパイラー 17.0 からの変更 (インテル® C++ コンパイラー 18.0 の新機能)

[トップに戻る]

動作環境

  • インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) をサポートするインテル® 64 アーキテクチャー・ベースのプロセッサーを搭載した PC (第 2 世代以降のインテル® Core™ i3/i5/i7 プロセッサー、インテル® Xeon® プロセッサー E3/E5 ファミリー、もしくはインテル製以外の互換プロセッサー)
  • 2GB の RAM (4GB を推奨)
  • 4GB のディスク空き容量 (すべての機能をインストールする場合)
  • インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー向けの開発/テスト:
  • インテル® グラフィックス・テクノロジーへのオフロードまたはインテル® グラフィックス・テクノロジー向け開発/テストのネイティブサポート
    • 次のプロセッサー・モデルをサポートしています。
      • インテル® Xeon® プロセッサー E3-1285 v3 および E3-1285L v3 (インテル® C226 チップセット) (インテル® HD グラフィックス P4700)
      • 第 5 世代インテル® Core™ プロセッサー (インテル® Iris™ Pro グラフィックス、インテル® HD グラフィックス)
      • 第 4 世代インテル® Core™ プロセッサー (インテル® Iris™ Pro グラフィックス、インテル® Iris™ グラフィックス、またはインテル® HD グラフィックス 4200+ シリーズ)
      • 注: リストされているチップセットのインテル® Xeon® プロセッサーのみサポートされます。ほかのチップセットのインテル® Xeon® プロセッサーはサポートしていません。前世代のインテル® Core™ プロセッサーはサポートしていません。インテル® Celeron® プロセッサーおよび Intel Atom® プロセッサーとの互換性はありません。
    • インテル® グラフィックス・テクノロジー対応の最新の 32 ビットまたは 64 ビット・グラフィックス・ドライバーは、ダウンロード・センター (英語) から入手できます。
    • Windows* 用 binutils (2.24.51.20131210) は、こちら (英語) で入手できます。
      • binutils をインストールした後、ld.exe を含むディレクトリーを PATH に追加する必要があります。
  • Microsoft* Windows* 7 (SP1)、Microsoft* Windows* 8、Microsoft* Windows* 8.1、Microsoft* Windows® 10、または Microsoft* Windows Server* 2012 (R2) (エンベデッド・エディションはサポートされません)、Windows Server* 2016[1]
    • Microsoft* Windows* 8、Microsoft* Windows* 8.1 および Microsoft* Windows Server* 2012 では、製品は「デスクトップ」環境にインストールされます。「Windows* 8 UI」アプリケーションの開発はサポートされていません。[2]
  • IA-32 またはインテル® 64 アーキテクチャー対応アプリケーションのビルドに、Microsoft* Visual Studio* 開発環境あるいはコマンドライン・ツールを使用する場合は、次のいずれかが必要です。
    • Microsoft* Visual Studio* 2017 Professional Edition 以上 (‘Desktop development with C++’ コンポーネントがインストールされていること)
    • Microsoft* Visual Studio* 2015 Professional Edition 以上 (‘Common Tools for Visual C++ 2015’ コンポーネントがインストールされていること)[3]
    • Microsoft* Visual Studio* Community 2015 (‘Common Tools for Visual C++ 2015’ コンポーネントがインストールされていること)[3]
    • Microsoft* Visual Studio* 2013 Professional Edition 以上 (C++ コンポーネントがインストールされていること)
    • Microsoft* Visual Studio* Community 2013 (C++ コンポーネントがインストールされていること)
  • IA-32[1] アーキテクチャー対応アプリケーションのビルドに、コマンドライン・ツールのみを使用する場合は、次のいずれかがインストールされていること。
    • Microsoft* Visual C++* Express 2015 for Windows* Desktop
    • Microsoft* Visual C++* Express 2013 for Windows* Desktop
  • インテル® 64 対応アプリケーションのビルドに、コマンドライン・ツールのみを使用する場合は、次のいずれかがインストールされていること。
    • Microsoft* Visual C++* Express 2015 for Windows* Desktop
    • Microsoft* Visual C++* Express 2013 for Windows* Desktop
    • Microsoft* Windows* Software Development Kit for Windows* 8
  • ドキュメントの参照用に Adobe* Reader* 7.0 以降

注意事項

  1. アプリケーションは、上記の開発用と同じ Windows* バージョンで実行できます。また、Windows* XP 以前の非エンベデッドの Microsoft* Windows* 32 ビット・バージョンでも実行できますが、インテルではこれらの互換性テストを行っていません。開発アプリケーションが、古いバージョンの Windows* にはない Win32* API ルーチンを使用している可能性があります。アプリケーションの互換性テストはご自身の責任で行ってください。アプリケーションを実行するには、特定のランタイム DLL をターゲットシステムにコピーしなければならないことがあります。
  2. インテル® C++ コンパイラーは、Windows* 8 UI アプリの開発をサポートしていません。インテルでは、ユーザーの皆様のご意見を常に参考にしています。例えば、Windows* 8 UI アプリケーションにインテル® C++ コンパイラーまたはその他のインテル® ソフトウェア開発製品の機能を利用したい方は、インテル® オンライン・サービス・センター (http://www.intel.com/supporttickets (英語)) からご意見をお送りください。
  3. Microsoft* Visual Studio* 2015 環境でインテル® C++ コンパイラーを使用する場合、Visual Studio* に ‘Common Tools for Visual C++ 2015’ コンポーネントがインストールされている必要があります。この記事 (英語) では、その方法を説明しています。
  4. またこの記事 (英語) では、Microsoft* Visual Studio* 2017 環境でインテル® C++ コンパイラーを使用する方法を説明しています。
  5. インテルは、ユーザーの課題に最適なソリューションを提供するため、インテル製品の市場を継続的に評価しています。この評価プロセスの一環として、インテルはインテル® Xeon Phi™ コプロセッサー 7200 (開発コード名 Knights Landing) を市場に投入しないことを決定しました。
    • インテル® Xeon Phi™ プロセッサー7200 の迅速な採用を考慮し、インテルは一般市場に Knights Landing (開発コード名) コプロセッサーを展開しないことを決めました。
    • インテル® Xeon Phi™ プロセッサーは、ユーザーに最も魅力的で競争力のあるソリューションを提供する、インテルのソリューション・ポートフォリオの主要要素であり続けます。

インテル® メニーコア・プラットフォーム・ソフトウェア・スタック (インテル® MPSS)

インテル® メニーコア・プラットフォーム・ソフトウェア・スタック (インテル® MPSS) は、インテル® C++ コンパイラーのインストール前またはインストール後にインストールできます。
最新バージョンのインテル® MPSS を使用することを推奨します。インテル® Parallel Studio XE for Windows* を登録すると、インテル® ソフトウェア開発製品レジストレーション・センター (http://registrationcenter.intel.com) から入手できます。
ユーザー空間およびカーネルドライバーのインストールに必要な手順については、インテル® MPSS のドキュメントを参照してください。

[トップに戻る]

インテル® C++ コンパイラーの使用方法

インテル® Parallel Studio XE 2018 コマンドラインおよび Microsoft* Visual Studio* からのインテル® C++ コンパイラーの使用方法についての情報は、「インテル® C++ コンパイラー 18.0 for Windows® 入門」 (<install-dir>\documentation_2018\en\compiler_c\ps2018\get_started_wc.htm) に含まれています。

[トップに戻る]

ドキュメント

製品ドキュメントへのリンクは、<install-dir>\documentation_2018\en\compiler_c\ps2018\get_started_wc.htm にあります。

Microsoft* Visual Studio* のオンラインヘルプ形式

新しいヘルプメニューの項目は、オンラインの「入門」ドキュメントへリンクされています。
F1 の状況依存ヘルプは利用できません。

インストール・イメージからオフライン・ドキュメントを削除

オフラインの core ドキュメントは、インテル® Parallel Studio XE のインストール・イメージには含まれていません。インテル® Parallel Studio XE の各コンポーネントの core ドキュメントは、インテル® ソフトウェア・ドキュメント・ライブラリー (英語) からオンラインで参照できます。また、オフラインバージョンのドキュメントは、インテル® ソフトウェア開発製品レジストレーション・センターから次の手順でダウンロードできます。
[Product List] > [Intel® Parallel Studio XE Documentation]

  • [ヘルプ設定の設定] が [ブラウザーで起動] に設定されている場合、[ツール] > [オプション] > [F# ツール] または [ツール] > [オプション] > [Intellitrace] で F1 キーを押すと、ブラウザーが 2 つ開きます。
  • Chrome*: 検索またはキーワードからトピックを表示すると、目次が同期しません。[トピックを同期] も動作しません。
  • Firefox*: 目次が表示されなくなることがあります。検索の大文字と小文字は区別されます。
  • Safari*: Windows* の反応が遅くなります。

日本語サポート

日本語サポートはこのリリースでは提供されていません。Update 1 で提供される予定です。

日本語環境へのインストールや日本語環境での使用については、次のブログの情報が参考になります。
https://www.xlsoft.com/jp/blog/intel/

[トップに戻る]

インテルが提供するデバッグ・ソリューション

[トップに戻る]

サンプル

製品のサンプルは、「インテル® ソフトウェア製品のサンプルとチュートリアル」 (英語) からダウンロードできます。

[トップに戻る]

テクニカルサポート

インストール時に製品の登録を行わなかった場合は、インテル® ソフトウェア開発製品レジストレーション・センター (http://registrationcenter.intel.com) で登録してください。登録を行うことで、サポートサービス期間中 (通常は 1 年間)、製品アップデートと新しいバージョンの入手を含む無償テクニカルサポートが提供されます。

テクニカルサポート、製品のアップデート、ユーザーフォーラム、FAQ、ヒント、およびその他のサポート情報は、http://www.intel.com/software/products/support/ (英語) を参照してください。
注意: 代理店がテクニカルサポートを提供している場合は、インテルではなく代理店にお問い合わせください。

[トップに戻る]

新機能と変更された機能

このバージョンでは、次の機能が新たに追加または大幅に拡張されています。これらの機能に関する詳細は、ドキュメントを参照してください。

Microsoft* Visual Studio* 2017 をサポート

インテル® C++ コンパイラーの統合サポートに Microsoft* Visual Studio* 2017 が追加されました。詳細は、「動作環境」を参照してください。

simd 構文の ordered ブロック向けの monotonic と overlap キーワード

既存の #pragma omp ordered simd 向けの新しいキーワード

  • #pragma omp ordered simd monotonic()
  • #pragma omp ordered simd overlap(expr)
  • #pragma omp simd reduction(=: list)

詳細は、『インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス』を参照してください。

新しいオプション /qopt-zmm-usage

新たに設けられたコンパイラー・オプション /Qopt-zmm-usage:low|high によって ZMM コードの生成をチューニングできます。引数レベル low は、インテル® Xeon® Platinum プロセッサー (開発コード名 Skylake Server) 上のエンタープライズ・アプリケーションなどで、インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) から、インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) へのスムースな移行を可能にします。ZMM 命令向けのチューニングには、#pragma omp simd simdlen() などの明示的なベクトル構文を使用することを推奨します。引数レベル high は、より広いベクトル操作を使用して命令ごとの計算量を高めるため、ベクトル計算が主体の HPC コードなどのアプリケーションに適しています。デフォルト値は、Skylake Server (開発コード名) マイクロアーキテクチャー・ファミリーをターゲットにする場合は low で、インテル® Core™ マイクロアーキテクチャー/インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーを組み合わせたインテル® AVX-512 ターゲット向けは high になります。

ハードウェア・ベース PGO をサポート

プロファイルに基づく最適化 (PGO) ハードウェア・ベースのイベント・サンプリングは、インテル® コンパイラーとインテル® VTune™ Amplifier を使用して PGO から多くの利点を得られる、新しい低オーバーヘッド・モデルです。データ収集は、インテル® VTune™ Amplifier がサポートされるシステム上で動作します。

詳細は、『インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス』を参照してください。

C++ STL の並列およびベクトル実行向けの並列 STL

インテル® C++ コンパイラーは Parallel STL とともにインストールされ、C++ 標準ライブラリーのアルゴリズムの実装と実行ポリシーがサポートされます。

Parallel STL の詳細については、入門ガイド (英語) とリリースノート (英語) をご覧ください。

抽出組込み関数 ( _mm256_extract_epi8 ) の戻り値の型を変更

__int8/__int16 型の代わりに int 型を返す 256 ビット・ベクトル組込み関数 _m256_extract_epi8/epi16(__m256i a, const int index) が定義されました。

新しいオプション /Qimf-use-svml による SVML の強制

新しいオプションは、スカラー数値計算で使用されている現在の LIBM に SVML の使用を強制します。これは、ベクトルコードとスカラーコードの計算結果がビット単位で同一になることを保証します。この機能により、コンパイラーは /fp:precise FP モデルで数学関数をベクトル化し、ベクトル化されたコードはスカラーコードと同じ結果を生成します。

CET – 制御フローの強制テクノロジーのサポート

制御フローの強制テクノロジー (CET) は、リターン指向プログラミング (ROP) やコール/ジャンプ指向プログラミング (COP/JOP) など脆弱性を悪用する攻撃からプログラムを防御します。詳細については、プレビュー・ドキュメント (英語) をご覧ください。

新しいコンパイラー・オプション /Qcf-potection[:keyword] により、コンパイラーの CET サポートを有効にします。

SVML 呼び出しをコンパイル時に割り当て

SVML 関数向けにコンパイラーのデフォルトの動作を変え、CPU 固有の SVML エントリーの呼び出しを行います。以前の動作に戻して動的に SVML のディスパッチを行うには、新しいオプション /Qimf-force-dynamic-target を指定します。

OpenMP* TR4 バージョン 5.0 プレビュー 1 の機能

OpenMP* TR4 バージョン 5.0 プレビュー 1 (英語) からのタスク・リダクション言語機能がサポートされるようになりました。

  • TASKGROUP に TASK_REDUCTION 節が追加されました。
  • TASK に IN_REDUCTION 節が追加されました。
  • TASKLOOP に REDUCTION 節と IN_REDUCTION 節が追加されました。

詳細は、コンパイラー・ドキュメントまたは上記の OpenMP* 仕様へのリンクを参照してください。

OpenMP* 4.0 以降の新機能をサポート

  • taskloop 構文 #pragma omp taskloop[clause[[,]clause]..] をサポート
  • #pragma omp for linear (list [ : linear-step ]) をサポート
    • listlist または modifier(list) のいずれか
  • linear 節で refvaluval 修飾子をサポート
    • 例:  linear(ref(p)), linear(val(i):1), linear(uval(j):1)
  • #pragma omp simd simdlen(n) をサポート
  • #pragma omp ordered [simd] をサポート
  • 配列全体のリダクション:  int x[n]; #pragma omp simd reduction(+:x)
  • processor 節の拡張を #pragma omp declare simd に追加 (OpenMP* 4.5 の正式な機能ではありません)
  • #pragma omp for schedule : 節の SIMD 修飾子と NONMONOTONIC 修飾子をサポート
    • インテル® C++ コンパイラー 18.0 には、ループ反復をチームのスレッド間でどのように分割するか、ユーザーの制御を強化する SIMD 修飾子と NONMONOTONIC 修飾子の拡張が含まれています。詳細は、『インテル® C++ コンパイラー・デベロッパー・ガイドおよびリファレンス』を参照してください。
  • reduction 節で部分配列をリスト項目としてサポート
    • reduction(reduction-identifier:list): リスト項目が部分配列の場合、reduction 節がセクションの個々の要素に適用されると見なして処理されます。プライベートの部分配列の要素は、連続して割り当てられます。

C++17 の機能をサポート

インテル® C++ コンパイラー 18.0 は、/Qstd=c++17 (Windows*) または -std=c++17 (Linux*/macOS*) コンパイラー・オプションで以下の C++17 の機能をサポートします。

C11 の機能をサポート

インテル® C++ コンパイラーは、/Qstd=c11 (Windows*) または -std=c11 (Linux*/macOS*) コンパイラー・オプションで以下の C11 の機能をサポートします。

新規および変更されたコンパイラー・オプション

コンパイラー・オプションの詳細は、『インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス』の「コンパイラー・オプション」セクションを参照してください。

  • すべての -o* オプションを -qo* オプションに変更

    以前のバージョンで非推奨とされたすべての -o* オプションは、このバージョンでは 1 つの除き -qo* に置き換えられました。Linux* と macOS* で出力ファイルを変更する -o オプションは変更されません。

    Windows* 環境では、/Qoffload-option コンパイラー・オプションが指定された時にターゲット・コンパイラーに渡されるオプションに影響します。

    新しいコンパイラーの診断機能では、-o オプションが使用されていることを警告します。次に例を示します。

    $ icc -openmp example.c
    icc: command line error: option ‘-openmp’ is not supported. Please use the replacement option ‘-qopenmp’

    影響のあるオプション:

    -[no-]openmp
    -openmp-lib=<arg>
    -openmp-link=<arg>
    -[no-]openmp-offload
    -[no-]openmp-simd
    -openmp-stubs
    -openmp-threadprivate=<arg>
    -openmp-report[=<level>]
    -openmp-task=<arg>
    -opt-args-in-regs=<arg>
    -[no-]opt-assume-safe-padding
    -opt-block-factor=<arg>
    -[no-]opt-calloc
    -[no-]opt-class-analysis
    -[no-]opt-dynamic-align
    -[no-]opt-gather-scatter-unroll
    -[no-]opt-jump-tables=<arg>
    -opt-malloc-options=<arg>
    -[no-]opt-matmul
    -[no-]opt-mem-layout-trans=<arg>
    -[no-]opt-multi-version-aggressive
    -[no-]opt-prefetch[=<val>]
    -opt-prefetch-distance=<arg>
    -opt-ra-region-strategy[=<arg>]
    -[no-]opt-report-embed
    -opt-report-file=<arg>
    -opt-report-filter=<arg>
    -opt-report-format=<arg>
    -opt-report-phase=<arg>
    -opt-report-routine=<arg>
    /opt-report-help
    /opt-report[=<arg>]
    /opt-report-per-object
    /opt-streaming-cache-evict=<arg>
    /opt-streaming-stores=<arg>
    /[no-]opt-subscript-in-range
    /opt-threads-per-core=<arg>

非推奨のコンパイラー・オプションのリストは、『インテル® C++ コンパイラー 18.0 ユーザーズガイド』の「コンパイラー・オプション」セクションを参照してください。

[トップに戻る]

廃止予定のサポート

インテル® Cilk™ Plus は 18.0 では非推奨

インテル® C++ コンパイラー 18.0 では、インテル® Cilk™ Plus は廃止予定の機能であり非推奨です。プロセッサー・グラフィックスへのオフロードには、OpenMP* ベースの構文を使用することを推奨します。詳細については、「インテル® Cilk™ Plus からOpenMP* もしくはインテル® TBB へ移行する」をご覧ください。

32 ビットの icc ラッパーは 18.0 では非推奨

icl: remark #10421: IA-32 ターゲット・ラッパー・バイナリー ‘icl’ は古いオプションです。コンパイラー・スタートアップ・スクリプトまたは適切なインテル(R) 64 コンパイラー・バイナリーで ‘-Qm32’ オプションを使用して目的のアーキテクチャーをターゲットにしてください。

終了したサポート

Microsoft* Visual Studio* 2012 のサポート終了

インテル® Xeon Phi™ x100 製品ファミリー (開発コード名 Knights Corner) のサポート終了

  • Visual Studio* 統合環境の [Code Generation [Intel C++]] > [Offload Target Architecture(/Qoffload-Arch)] で、”mic” 引数が表示されなくなりました。
  • インテル® C++ コンパイラー 17.0 プラットフォーム・ツールセット向けのプロジェクトで保存された “mic” の値は、18.0 プラットフォーム・ツールセットへアップグレード後デフォルト値に更新されます。

IA-32 ホストへのインストールのサポート終了

IA-32 ホストへのインストールのサポートを終了しました。32 ビット・ターゲット用コード生成のサポートは 64 ビット・ホストでサポートされます (/Qm32 コンパイラー・オプションを使用)。

_GFX_enqueue を削除

_GFX_enqueue は削除されました。_GFX_offload に変更してください。

[トップに戻る]

既知の制限事項

インテル® Xeon Phi™ コプロセッサーをターゲットとするオフロード・アプリケーションには、Microsoft* Visual Studio* 2015/2017 が必要

インテル® メニーコア・プラットフォーム・ソフトウェア・スタック (インテル® MPSS) のインテル® Xeon Phi™ x200 製品ファミリーのサポート制限により、現在オフロード・アプリケーションの実行には Microsoft* Visual Studio* 2013 を使用できません。Microsoft* Visual Studio* 2013 を使用してオフロード・アプリケーションをビルドすることは可能ですが、実行するとエラーで終了します: “リモートプロセスは、libioffload_target.so.5、libiomp5.so、libcilkrts.so.5 ライブラリーをロードできません。オフロードエラー: デバイス 0 でプロセスを開始できません (エラーコード 19)。”
Microsoft* Visual Studio* 2013 でビルドされたオフロード・アプリケーションを実行する場合、”Intel Compiler 18.0 Intel(R) 64 Visual Studio* 2015/2017″ コマンドプロンプトから ‘devenv’ として Microsoft* Visual Studio* 2015 または 2017 を使用する必要があります。しかし、このエラーメッセージは、VS2015/2017 がショートカットから起動された場合にのみ表示され、インテル® Parallel Studio XE 環境のコマンドプロンプトを使用した場合には表示されません。VS2013 は別の問題で失敗しメッセージを表示します。推奨される回避方法は、Microsoft* Visual Studio* 2015 または 2017 のみを使用し、インテル® Xeon Phi™ コプロセッサーをターゲットとするアプリケーションをビルドおよび実行することです。この制限は将来のインテル® メニーコア・プラットフォーム・ソフトウェア・スタック (インテル® MPSS) では変更されるかもしれません。

ポインターチェッカーにダイナミック・ランタイム・ライブラリーが必要

/Qcheck-pointers オプションを使用する場合は、ランタイム・ライブラリー libchkp.dll をリンクする必要があります。/MD のようなオプションを /Qcheck-pointers とともに使用すると、設定に関係なくこのダイナミック・ライブラリーがリンクされることに注意してください。詳細は、http://intel.ly/1jV0eWD (英語) を参照してください。

日本語版 Windows* にインストールすると IDE からインテル® コンパイラーのヘルプ・ドキュメントを起動できない

複数のペインを含むドキュメントが Visual Studio* 内のブラウザーで正しく表示されない

Visual Studio* 内のブラウザーには複数のペインを含むドキュメントが正しく表示されない制限があります (左のペインに目次が表示されますが、右のペインにコンテンツが表示されません)。
回避方法: 回避策: Visual Studio* の [ヘルプ] メニューからドキュメントにアクセスします。

異なるコンパイラーを使用して 256 ビット・ベクトル型引数をコンパイルすると実行時にアクセス違反が発生するコードが生成されることがある

2 つの異なるコンパイラー (Microsoft* Visual C++* 2013 コンパイラーおよびインテル® C++ コンパイラー15.0 以降) を使用してアプリケーションを作成した場合、アライメントされていないデータアクセスによる一般保護違反が発生することがあります。この問題は、256 ベクトル・ビット型引数が呼び出しの際に参照で渡され、呼び出し元が Visual C++* でビルドされている場合に、その引数をインテル® C++ コンパイラーでビルドした関数でアクセスすると発生します。

原因は、256 ビット・ベクトル型引数のアライメントが一致しないためです。

<code> にインテル® AVX 以降の新しいコード値 (CORE-AVX-I、CORE-AVX2、その他) を指定して /Qx<code> コンパイラー・オプションを使用する場合は、アプリケーションのソースコードで __mm256_stream_* (非テンポラルデータのロード/ストア組込み関数) が明示的に使用されない限り、実際にはアライメントされていないアクセス命令がこれらのインスタンスで使用されるため、この問題は発生しません。

Visual Studio* の既知の問題

  • インテル® C++ コンパイラーの Visual Studio* 2017 統合の問題

    Microsoft* Visual Studio* 2017 との統合ではさまざまな問題が見つかっています。これらの問題は必ず発生するわけではなく、またすべてのシステムで発生するわけでもありません。これまでのところ、最新の Visual Studio* 2017 バージョン 15.3.3 では、統合の問題が見つかっていません。詳細は、https://www.isus.jp/products/psxe/software-development-tools-vs2017-ide-issue/ を参照してください。

  • MSVCP90D.dll (またはその他の Microsoft* ランタイム DLL) が見つからない

    サンプル・プロジェクト (および Microsoft* Visual C++* プロジェクト) を実行するときに Microsoft* Visual Studio* のランタイム DLL が見つからない場合、ランタイムエラーが発生します。これは、マニフェスト・ファイルや SXS アセンブリーが見つからないことが原因です。この問題を解決するには、使用しているバージョンの Microsoft* Visual Studio* の redist フォルダー (デフォルトの場所は C:\Program Files[ (x86)]\Microsoft Visual Studio X.X\VC\redist) に移動します。amd64x86Debug_NonRedist サブフォルダーで、必要なランタイムが含まれているフォルダーを探します (デバッグ・ライブラリーを探す場合は、ファイル名の最後が D のファイルが含まれているフォルダーを探します)。必要なランタイムが含まれているフォルダーが見つかったら、そのフォルダーの (.manifest ファイルを含む) すべての内容を、実行する .exe ファイルのあるフォルダーにコピーします。

  • 警告 #31001:pdb にアクセスするための dll (mspdb110.dll など) が指定されたパスに存在しません。

    Microsoft* Visual Studio* Express を使用して、IA-32 向けのコンパイルで /debug ([Fortran] > [General (全般)] > [Debug Information Format (デバッグ情報の形式)]) を有効にすると、次の警告が出力されることがあります。警告 #31001: pdb にアクセスするための dll (mspdb110.dll など) が指定されたパスに存在しません。通常は設定エラーです。コンパイルは /Zi の代わりに /Z7 を使用して継続されますが、プログラムをリンクするときに同様のエラーが発生する可能性があります。64 ビットの Windows* アプリケーション (つまり、インテル® Visual Fortran コンパイラー) は 64 ビットの dll を使用する必要がありますが (https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa384231(v=vs.85).aspx)、Microsoft* Visual Studio* Express は 32 ビット・バージョンの mspdb*.dll のみ提供しており、64 ビット・バージョンがないため、この警告が表示されます。この警告が表示されても、実行ファイルは正常にビルドされます。ただし、デバッガーで使用されるデバッグ情報はオブジェクト・ファイル (.obj) に埋め込まれます。/Z7 が有効な場合、コンパイラーは .pdb ファイルを生成しません。

  • インテル® Parallel Studio 2018 に含まれるインテル® C++ および Fortran コンパイラーの Visual Studio* 2017 統合
    • VS2017 では、ベース・プラットフォーム・ツールセット機能が制限されます。利用可能なベース・プラットフォーム・ツールセットは、V141 と V141_xp です。v140、v140_xp、v120、v120_xp などの古いビルド環境を使用する場合、対応する Visual Studio* バージョンへインテル® C++ コンパイラー 統合環境をインストールしてプロジェクトをビルドするか、古いバージョンでサポートされる Visual Studio* からベース・プラットフォーム・ツールセットを使用します。
    • インテル® Fortran モジュールウィザードで作成されたファイルは、VS2017 では Fortran プロジェクトに自動追加されません。手動で追加する必要があります。[プロジェクト] を右クリックし [追加] > [既存の項目] から追加するファイルを指定します。
    • VS2017 でサポートされるインテル® C++ コンパイラーとインテル® TBB を使用してオフロード・アプリケーションをコンパイルするには、プロジェクトのプロパティーの [C/C++] > [コマンドライン] > [追加のオプション] に /Qtbb を手動で追加する必要があります。

インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーの既知の問題

  • ランタイム型情報 (RTTI) は未サポート

    仮想共有メモリー・プログラミングでは、ランタイム型情報 (RTTI) はサポートされていません。具体的には、dynamic_cast<>typeid() の使用はサポートされていません。

インテル® グラフィックス・テクノロジーへのオフロードの既知の問題

  • gfx_linker: : error : command ‘ld.exe’ exited with non-zero exit code -107374170

    x64 プロジェクトでインテル® グラフィックス・テクノロジーへコードをオフロードすると、binutils に含まれている ld.exe でリンカーエラーが表示されることがあります。この問題を解決するには、64 ビット用の binutils bin ディレクトリーを PATH 環境変数に追加して、Microsoft* Visual Studio* を再起動してください。

  • オフロードコードのホストバージョンは並列化されない

    コンパイラーは、#pragma offload 以下に並列ループのターゲットバージョンとホストバージョンの両方を生成します。ホストバージョンは、オフロードが実行できない場合 (通常は、ターゲットシステムにインテル® グラフィックス・テクノロジーが有効なユニットがない場合) に実行されます。並列ループは、オフロードの並列セマンティクスを含む cilk_for の並列構文または配列表記文を使用して指定する必要があります。ターゲットバージョンはターゲット実行の際に並列化されますが、現在、ホスト側のバックアップ・バージョンが並列化されない制限があります。cilk_for を使用したときにオフロード実行が行われないと、バックアップ・コード実行のパフォーマンスに大きく影響する場合があることに注意してください。配列表記文は現在ホスト側で並列コードを生成しないため、パフォーマンスに影響はありません。これは既知の問題で、将来のリリースで修正される予定です。

  • インテル® グラフィックス・テクノロジーへのオフロードの既知の制限事項
    • Windows* 7 では、オフロードが行われたときにディスプレイをロックできません。アクティブ・ディスプレイが必要です。
    • オフロードコードでは、次の機能を使用できません。
      • 例外処理
      • RTTI
      • longjmp/setjmp
      • VLA
      • 変数引数リスト
      • 仮想関数、関数ポインター、その他の間接呼び出しまたはジャンプ
      • 共有仮想メモリー
      • 配列や構造体のようなポインターを含むデータ構造
      • ポインターまたは参照型のグローバル変数
      • OpenMP*
      • cilk_spawn または cilk_sync
      • インテル® Cilk™ Plus のレデューサー
      • ANSI C ランタイム・ライブラリー呼び出し (SVML、math.hmathimf.h 呼び出し、およびその他いくつかの例外あり)
    • 64 ビット浮動小数点演算および整数演算は非効率

Microsoft* Windows* 10 日本語版の Microsoft Edge* でドキュメントが表示されない問題

  • Microsoft* Windows® 10 日本語版では、Microsoft Edge* でインテル® コンパイラー・ドキュメントを表示すると、左上の [目次]、[キーワード]、[検索] ボタンが動作しません。ボタンをクリックすると、空白ページが表示されます。

  • この問題は現在調査中です。回避策として、インテル® コンパイラー・ドキュメントの表示には Internet Explorer* を使用してください。デフォルトのブラウザーを Internet Explorer* に設定するには、Google* で「Internet Explorer* を通常使うブラウザーにする」を検索してください。

[トップに戻る]

著作権と商標について

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスも許諾するものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品適格性、あらゆる特許権、著作権、その他知的財産権の非侵害性への保証を含む) に関してもいかなる責任も負いません。インテルによる書面での合意がない限り、インテル製品は、インテル製品の欠陥や故障によって人身事故が発生するような用途向けに使用することを前提としたものではありません。

インテル製品は、予告なく仕様や説明が変更されることがあります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。

本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。

最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。

本資料で紹介されている資料番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、http://www.intel.com/design/literature.htm (英語) を参照してください。

インテル・プロセッサー・ナンバーはパフォーマンスの指標ではありません。プロセッサー・ナンバーは同一プロセッサー・ファミリー内の製品の機能を区別します。異なるプロセッサー・ファミリー間の機能の区別には用いません。詳細については、https://www.intel.co.jp/jp/products/processor_number/ を参照してください。

インテル® C++ コンパイラーは、インテルのソフトウェア使用許諾契約書 (EULA) の下で提供されます。詳細は、製品に含まれるライセンスを確認してください。

Intel、インテル、Intel ロゴ、Intel Atom、Celeron、Intel Core、Iris、Xeon、Intel Xeon Phi、Cilk、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。

Microsoft および Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

© 2017 Intel Corporation. 無断での引用、転載を禁じます。

[トップに戻る]

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • インテル Parallel Universe 30 号日本語版の公開インテル Parallel Universe 30 号日本語版の公開 インテル Parallel Universe マガジンの最新号が公開されました。 この号の注目記事、「インテル® Advisor のフローグラフ・アナライザーで自動運転コードのパフォーマンスを向上」では、インテル® Parallel Studio XE のプレビュー機能であるフローグラフ・アナライザー (FGA) […]
  • インテル® Xeon Phi™ プロセッサー向けのコードの現代化インテル® Xeon Phi™ プロセッサー向けのコードの現代化 この記事は、インテルの The Parallel Universe Magazine 26 号に収録されている、新しいインテル® Parallel Studio XE 2017 の機能を利用したインテル® Xeon Phi™ […]
  • インテル® 開発ツール・スイート Linux* 対応インテル® 開発ツール・スイート Linux* 対応 この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® Tool Suites for Linux*」の日本語参考訳です。 マルチスレッド・アプリケーションを作成するため、高度に最適化されたパフォーマンス・ライブラリーとともにインテル® […]
  • インテル® DAAL for Windows* 入門ガイドインテル® DAAL for Windows* 入門ガイド この記事は、インテル® デベロッパー・ゾーンに公開されている「Getting Started with Intel® Data Analytics Acceleration Library for Windows*」の日本語参考訳です。 インテル® Data Analytics Acceleration Library […]
  • 解析ターゲット解析ターゲット この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Analysis Target」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]