PGI 6 - ソフテック

2017 年 2 月
株式会社ソフテック
PGI 2017 の新コンパイラ・オプションと従来との変更部分
■ 全ての PGI コンパイラ
 浮動小数点除算演算について、
スカラ計算とベクトル計算処理の両方で同じ結果になるように保
証するために演算方式を変更しました。この変更により、PGI 17.1 とそれ以前のバージョンでの
数値的な誤差が起こる場合があります。まれなケースですが、この変更により実行時間の増加が
見られることがあります。

-Minline オプションによるインライン機能を強化しました。以前のバージョンでインラインを実
施できていたルーチンや関数の違いが見えるかもしれません。あるケースでは、インライン可能
となる関数の増加に伴い、コンパイル時間が増加する場合もあります。また、-Minline の細かな
制御のためのサブオプションの幾つかは、以前のリリースとは異なるものもあります。




totalsize:n を追加しました。インラインする際の総サイズを n とします。n はファイルベ
ースで考えた時の組み込むプログラムユニットのサイズを意味します。
サブオプションの変更として以前の size:n を maxsize:n に変更しました。これは、約 n 行
未満の関数だけのインラインを許可するサブオプションとなります。以前の size:n で指定
した場合は、コンパイラで自動的に maxsize:n に変換して処理します。
levels:n サブオプションを廃止しました。このオプションは、関数の階層レベル n を指定し
てインラインすることを指示するためのものでした。もし、これが指定されても、コンパ
イラは無視します。
-Mpreprocess オプションのエイリアスとして、-cpp オプションを追加しました。
■ PGI C++Compiler
 GCC 5.2, 5.3, 5.4, 6.0, 6.1, 6.2 との互換性を保つために、EDG release 4.11 との統合を

行いました。GCC 5.1 以降にサポートされた C++11 機能を利用するためには、PGC++コンパ
イラ・オプションに--c++11 を指定してください。
C++14 を包括的にサポートしました。但し、サポートした C++14 機能を使用するためには
GNU GCC 5.1 以上の実装環境が必要となります。pgc++コンパイラにて、C++14 機能を使用す
るためには、--c++14 オプション を追加してコンパイルする必要があります。以下の機能を除
いた C++14 機能をサポートします。







generalized constexpr and constexpr member functions and implicit const
variable templates
clarifying memory allocation (merged allocation)
C++ の例外ハンドリングが機能向上しました。これに関連して、次のコンパイラ・オプション
を廃止しました。--[no_]exceptions, --need_exception_spec, --sjlj_eh, --[no]zc_eh
-M[no]variadic_macros を追加しました。これは、可変個引数マクロを許可したりしなかったり
するためのものです。デフォルトで許可されています。
--edg と –gnu オプションを廃止しました。
GNU は、バージョン 5.0 において GCC STL ヘッダーファイルを変更しました。この変更は、
以前の GCC バージョンでコンパイルされたコードとの互換性の問題が発生します。GCC 5.0 よ
りも前に作成したオブジェクトとライブラリとの互換性をサポートするための対処策として、
1
© 2017, SofTek Systems. Inc.
-D_GLIBCXX_USE_CXX11_ABI=0 を付してコンパイルすることを進めています。これに関する
詳細な情報は、https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html をご覧く
ださい。
■ PGI Accelerator OpenACC Compilers
 CUDA7.0 のサポートを終了しました。
 コンパイル時に使用される CUDA Toolkit のデフォルトバージョンを 7.5 に変更しました。また、
明示的に 8.0 Tooklit を使用したい場合は、-ta=tesla あるいは-Mcuda オプションに cuda8.0 のサ

ブオプションを付加してください。
NVIDIA Compute capability 2.0 (Fermi) デバイス用の executable はデフォルトで生成されませ
ん。明示的に -ta=tesla,cc20 で生成する必要があります。今後のリリースで、cc20 サブオプシ
ョンは廃止される予定です。
以上
2
© 2017, SofTek Systems. Inc.