▶ PGI 2011 (PGI 11.x ) リリースノート(PDF)
PGI コンパイラ製品の最新バージョン(Release 2011) の日本語版リリースノートについては、PDFファイルをご覧下さい。
英語版のリリースノートは、こちらをご覧下さい。

PGI 11.10(2011年10月)
PGI 11.9(2011年9月)
■ PGI Compilers
- AMD AVX-enabled Bulldozerプロセッサをサポートしました。
■ PGI Accelerator C/C++ (CUDA-x86)
- CUDA C/C++ で記述されたプログラムをマルチコア x86 プロセッサ上で動作させるための PGI CUDA C/C++ コンパイラのコードジェネレータ(CUDA-x86)は、最新の x64プラットフォーム用の最適化されたコードを生成します(ベータ版)。(今までは、その機能だけを提供するリリースでした)
■ PGPROF
- ハードウェア・カウンターベースのプロファイリング機能として、Sandybridge と Bulldozer ベースのプロセッサの両方をサポートしました。(使用例)pgcollect -hwtime
PGI 11.8(2011年8月)
■ CUDA Fortran
- コンパイル・オプション -mcmodel=medium (Linux only)をサポートしました。さらに、NVIDIA CUBLAS ライブラリへのインタフェース用に新しいモジュールを提供しました。CUDA Fortran から CUBLASを使用するために、ホストプログラム上で use cublas 文を定義してください。
■ PGI Workstation for Windows
- 同梱している cygwin のバージョンを 1.7.9-1 に更新しました。
■ PGI for Mac OS X
PGI 11.7(2011年7月)
■ PGI Compilers
- AVX-enabled targetプロセッサに対する 256bit-wide のベクトル組込関数の強化とその他の AVX 最適化を追加しました。
■ CUDA Fortran
- 実装している CUDA 4.0 API を更新(追加)しました。「CUDA Fortran Programming Guide and Reference」を更新しました。
■ Fortran 2003
- 「Final Procedures」のサポートを行いました。
■ PGDBG® Debugger
- 新しい Call Stack の表示形式の実装と機能追加(上矢印とコマンドライン履歴)を行いました。
PGI 11.6(2011年6月)
■ PGI Compilers
- Intel AVX-enabled Sandy Bridge プロセッサをサポートしました。CPUターゲット用オプションとして、-tp sandybride-32、-tp sandybridge-64 を追加しました。
- SSEベクトル化におけるSIMDデータ幅の選択オプションが追加されました。-Mvect=simd:{128|256}:SIMD命令とデータを使用してベクトル化する際、そのデータ幅を 128bit / 256bit のどちらを使用するかを選択します。256bit 幅を使用できるかはプロセッサに依存します。
■ PGI Accelerator compiler
- デバイス常駐データ(device-resident data)を使ったサブルーチンあるいは CUDA kernel を call できるようにしました。
■ CUDA Fortran
- デバイスコード内で shared memory をサイズ固定化(静的)せずに使用できるようにしました。そのサイズは、blockdim%x 等の要素数で指定できます。また、デバイスコード上での print * 文の使用を限定的ですが利用できるようにしました。さらに、NIVIDA cublas ライブラリを使用するための module を追加実装しました。
■ CUDA-x86
- CUBLAS ライブラリのエミュレーションバージョンをCUDA C++ for x86に追加しました。このライブラリをリンクする方法については、コンパイラソフトウェアに同梱している the simple CUBLAS SDK example を参照して下さい。
■ Fortran 2003
- Allocate 文におけるa polymorphic source type に対するsource= qualifierを正しく認識するようにサポートしました。
■ PGI C++
- throwing と non-throwing の関数の取り扱いに関する向上を行いました。
PGI 11.5(2011年5月)
■ PGI Accelerator とCUDA Fortran に次のコンパイラ・オプション(フラグ)機能が追加されました。
これらのオプションは、GPU上の浮動小数点演算における flush-to-zero mode を制御するためのものです。flush-to-zero とは、非正規化数が 0 に置換する処理です。一般に浮動小数点演算において、非正規化数が生じると演算性能が大きく低下します。
- -ta=nvidia,[no]flushz:PGI Accelerator プログラミングモデルの計算リージョン内の GPU 処理で、flush-to-zero モードを制御します。デフォルトは、-ta=nvidia,noflushz です。
- -Mcuda=[no]flushz:CUDA Fortran カーネルで生成される GPU コード上の浮動小数点演算処理で、flush-to-zero モードを制御します。デフォルトは、-Mcuda=noflushz です。
■ CUDA C++ compiler for x86を初めてプロダクト・リリースしました。
- CUDA C++ プログラムを PGI C++ コンパイラでコンパイルして、この実行バイナリを x86 プロセッサ上で実行できる PGI CUDA C for Multi-core x86 環境を初めてプロダクト・リリースしました。x86 (x64) のシステム上に、NVIDIA GPU アクセラレータがない場合は、x86(x64) CPU側の SSE 機構を使用して動作します。このリリースは、最初の「機能」のみのリリースであり、その x86 性能は最適化されておりません。性能最適化されたバージョンは、2011年の期末頃のリリースを予定しています。この機能は、C/C++言語を有したPGI Accelerator ライセンス製品を有し、PGI 11.5 時点以降のサブスクリプションが有効な場合にノーチャージで利用可能です。なお、SDK用のサンプルプログラムは、Linux 版の場合は、$PGI/linux86(-64)/2011/cuda/cudaX86SDK配下に提供しています。Windows版の場合は、C:¥Program files\PGI\win64(win32)\2011\cuda\cudaX86SDK配下に、またMacOS X 版では、$PGI/osx86(-64)/2011/cuda/cudaX86SDK配下に提供しています。
- 以下のリストは、今後のリリースにおいてサポート予定の機能です。
- CUDA driver API のサポートは現在のところ計画していません。
- Texture memory は未サポート(2011年Q4予定)
- OpenGLとの相互運用性(現在、調査中、未決)
- warp-synchronous programming のサポートは現在のところ計画していません。
- CUBLAS and CUFFT libraries のサポートは PGI 11.6 の予定。
- Thrust C++ library のサポート(現在、調査中、未決)
詳細については、PGI2011リリースノートの「PGI CUDA C++ Compilers for x86」の項で説明しております
■ PGDBGは、CUDA-x86 プログラムのデバッグをサポートしました。
- デバイスコードにブレークポイントを設定した際、OMP_NUM_THREADSのスレッド数を使用して、一つの CUDA スレッドをエミュレートするOpenMPタスクを並列にブレークする形で、エミュレート・デバッグを行います。
PGI 11.4(2011年4月)
■ 新しい Fortran Module が追加されました。
- 標準 C 数学ライブラリ libm に含まれるルーチンを使用するための Fortran Module の新設(use文で宣言)
- CUDA デバイス・ビルトインルーチンを使用するための Fortran Module の新設(use文で宣言)
詳細については、PGI2011リリースノートの「Fortran Moduleの機能強化」の項で説明しております
■ PGIPGI Accelerator and CUDA Fortranの強化。
- PGI Accelerator モデルは、GPUデバイス上の C プログラムにおいて、直接、メモリのアロケートと解放を行う acc_malloc と acc_free ルーチンを使えるようにしました
- 新しいAPIルーチンとして、アクセラレータのリージョンとカーネルに対する最低限のプロファイリング情報にアクセス可能なAPIを提供しました
- CUDA Fortran 用の新しいメモリ管理ルーチン、cudaMemGetInfo が新設されました。これは、デバイスにアロケートする際に有効な総メモリ容量とフリーメモリ量を知らせます
詳細については、PGI2011リリースノートの「PGI Accelerator and CUDA Fortranの機能強化」の項で説明しております
■ PGPROFプロファイラの強化点
- メニュー項目の識別を向上させるため、標準的なメニュー機能をより近くに整列しました
- ユーザ初期設定を各ユーザ・レベルで保存できるようにしました
- ユーザ初期設定情報は、デフォルトで保存して、pgprofを終了できるようになりました
- タブ画面上の表示フォント名とサイズを変更定できるようにしました
■ PGDBGデバッガの強化点
- デバッガのGUIの「タブのウインドウ画面」は、自由に移動、収納できる(dockable)ようになり、サイズの変更や画面クローズ、自動的に隠す等のGUI操作ができるようになりました
- ユーザ初期設定情報は、デフォルトで保存して、pgprofを終了できるようになりました
- タブ画面上の表示フォント名とサイズを変更定できるようにしました
PGI 11.3(2011年3月)
■ PGPROF の -text オプションを復活しました。これにより、テキストモードによるプロファイル情報の確認が可能となります。
■ Mac OS X 64ビット版用PGIアクセラレータ並びに CUDA Fortran をサポートしました。
■ PGI Visual Fortran のコンパイルにおける runtime プロパティの新設
- Fortran|Runtime|Check Array Bounds プロパティの新設。これを指定することにより、実行時に、配列境界のチェックを行います。
- Fortran|Runtime|Check Pointers プロパティの新設。これを指定することにより、実行時に、ヌルに初期化されて参照解除されているポインタのチェックを行います。
- Fortran|Runtime|Check Stack プロパティの新設。これを指定することにより、実行時において、並列リージョンの開始前、あるいは関数の開始前に有効なスタックスペースのチェックを行います。
■ PGI Visual Fortran のリンカーにおけるスタック割当サイズを指定するためのプロパティの新設
- Linker|General|Stack Reserve Size プロパティの新設。これは、仮想メモリ内でスタック割当を行う総数を指定します。
- Linker|General|Stack Commit Size プロパティの新設。これは、物理メモリ内でスタック割当を行う総数を指定します
PGI 11.2(2011年2月)
■ PGI Workstation for Windows製品にバンドルしているLinuxシェルのエミュレータ、cygwinのバージョンを 1.5 系から最新のバージョン 1.7.7-1 に更新しました。
PGI 11.2 は、バンドルしている "Cygwin" のバージョンを 1.7.7-1 に更新しました。ssh, emacs, perl 等のコマンドも追加しております。また、この cygwin のシェル環境は、日本語等の2バイト文字にも対応しており、日本語の表示やシェル上での日本語文字のハンドリングが可能となります。但し、過去の PGI のリリースにおけるcgwinインタフェースとの互換性を維持するために、いくつかの変更があります。詳細は、以下のURLをご覧下さい。
「PGI 実装の Cygwin に関する FAQ」
Windows版のPGIコンパイラに関するFAQ
「Cygwin update for PGI 11.2 on Windows」
http://www.pgroup.com/userforum/viewtopic.php?t=2448
■ 20 個のユーザリクエストによる機能強化とバグフィックス
PGI 11.1(2011年1月)
■ 11 個のユーザリクエストによる機能強化とバグフィックス
PGI 11.0(2010年12月)
■ PGI Accelerator™ x64+GPU native Fortran 2003 and C99 compilers
ディレクティブ・ベースのGPUプログラミング、最適化手法のプログラミングモデルは、PGI Accelerator Programming Model v1.2 仕様を完全サポートしました。例えば、以下の項目のサポートが追加されております。
- MIRROR, REFLECTED, UPDATEディレクティブを使用した「デバイス常駐型データ」の使用
- unroll節に対応した自動的な GPU 側でのループアンローリング
- OpenMP並列リージョン内でネストされたアクセラレータ・リージョンの使用
■ PGI 2011 の Fortran 2003 でサポートされている CUDA Fortran 拡張
■ pgfortran は、Fortran 2003 に完全準拠しました
pgfortran コンパイラは、Fortran 2003、Fortran 95、Fortran 90、および FORTRAN77 標準に準拠します。これにより、FORTRAN77プログラムから最新の Fortran 2003 構文を含んだプログラムのコンパイルが可能となります。また、PGI製品には、FORTRAN77専用のコンパイラも同梱されています。この F77専用コンパイラは、標準規約以外の構文(言語の方言)等も解釈できるもので、レガシーなプログラムの開発環境においては、重宝されるコンパイラです。
■ C/C++コンパイラ機能の強化
最新の EDG 4.1フロントエンドを搭載し、GNUとマイクロソフトとの互換性を強化しました。外部インライン(extern inline) のサポート、向上した BOOST サポート、スレッド・セーフの例外ハンドリング等の機能が含まれます。
■ コンパイラの最適化と強化
AVX(Advanced Vector Extensions) に対応したコードの生成, C++ 上のインライン化、実行モジュールサイズの縮減等
■ PGPROF 並列 MPI/OpenMP 対応、CPU並びに GPUの性能解析チューニングツール
- 再コンパイルせずに、あるいは、 Linux、MacOS、Windows の各 OS 上の特別な特権無しに、クロスプラットフォーム間で性能プロファイリングが可能
- PGI AcceleratorとCUDA Fortran における GPU サイドの性能統計
- GUIを更新
▶ 過去のバージョンのリリースノート