インテル® Cilk™ Plus の仕様変更

同カテゴリーの次の記事

インテル® Cilk™ Plus 入門 (全4回)

2011年に登場したインテル® Parallel Studio 2011 に含まれるインテル® C++ コンパイラー V12.0 から実装が始まったインテル® Cilk™ Plus ですが、コンパイラーのバージョンアップに伴いいくつかの機能強化にともなう変更が行われています。ここで、V15 と V14 における変更点をまとめてみました。

インテル® コンパイラー 15.0 のインテル® Cilk™ Plus の変更点

インテル® C++ コンパイラー 15.0 では、インテル® Cilk™ Plus の次の新機能が追加されています:

  • #pragma simd シンタックスの代替えとして、キーワードで明示的なベクトル・プログラミングができるようになりました。追加されたキーワードは、_Simd、_Saflen、そして _Reduction です。詳しくは、コンパイラーのユーザーズ・ガイドをご覧ください。
  • __intel_simd_lane() 組込み関数は、SIMD ベクトル関数 (__declspec(vector)) 内の “レーン ID” を表現します。
  • Doxygen* を使用してインテル® Cilk Plus のドキュメントを生成できるようになりました。詳細は、compiler/include/cilk/ReadMe.html をご覧ください。
  • 新しい__declspec(vector_variant(…)) は、スカラー関数のベクトル固有の過負荷を定義します。

インテル® C++ Composer XE 2013 SP1 のインテル® Cilk™ Plus の変更点

インテル® C++ Composer XE 2013 SP1 では、インテル® Cilk™ Plus の次の新機能が追加されています:

  • gcc と OpenMP* のベクトル関数の実装との互換性を向上するため、SIMD 対応関数の実装が変更されています。この変更により、インテル® C++ コンパイラーの以前のバージョン (13.1 以前) とバイナリー互換性がなくなります。インテル® C++ コンパイラー 14.0 で SIMD 対応関数を使用するすべてのコードをリビルドするか、以前の実装を使用するには /Qvecabi:legacy コンパイラー・オプションを指定する必要があります。
  • 新しい乗算レデューサーが cilk/reducer_opmul.h で定義されています。
  • ビット単位のリダクション操作をサポートするため、次の 3 つの新しい配列表記のリダクション組込み関数が追加されています。
    • __sec_reduce_and
    • __sec_reduce_or
    • __sec_reduce_xor

 

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

関連記事