PGI Compiler

PGIコンパイラ は、HPC とコンパイラ技術で長い経験を有する The Portland Group Inc (PGI) 社の科学技術並びにエンジニアリング分野におけるフラグシップ・コンパイラです。また、多くの商用アプリケーション、Gaussian、STAR-CD 等の科学技術計算用の ISV ソフトウェアのベース・コンパイラとして活用され、多くの実績を残しております。
インテル®ならびに AMD™ のプロセッサ用に、各マイクロアーキテクチャに応じた最適化コードを生成できます。また、32ビットあるいは64ビットの OS のもとで、マルチコア・プロセッサ用の並列化が可能なハイ・パフォーマンス自動並列化コンパイラです。
製品トップ
製品特徴
製品仕様

PGI Accelerator Fortran/C/C++ コンパイラ製品 (x64+GPU)

PGI Accelerator Fortran/C/C++ コンパイラ製品 (x64+GPU) の主な機能

  1. インテル® 並びに AMD のマルチコア・プロセッサ(x86、x64)用の並列・最適化コンパイラ機能
  2. ディレクティブ挿入による x64+GPU 用実行バイナリの自動生成機能(Fortran と C99 のみ)
    PGI CUDA Fortran 機能
  3. CUDA C/C++ プログラムを GPU を有しないマルチコア x64 プロセッサ上で動作させる機能

PGI Accelerator Compiler機能


各機能を使用するには、コンパイラ・コマンドのオプションで機能を切り替えるだけ!

PGIコンパイラの各翻訳機能は、コマンドのオプションで指定することによって切り替えることができます。x64+GPU 用実行モジュールを生成するために、複雑なコマンド操作は必要ありません。

PGI compilerコマンド・オプション


PGI Accelerator Fortran and C99(ディレクティブ指示)の例

PGIアクセラレータ・プログラミングモデルは、従来のプログラムの中の CUDA 並列化対象となるループをディレクティブ(プラグマ)で指示して、x64+GPU用のコードを自動的に生成するためのプログラミングモデルです。例えば、以下の Fortran 例のように、CUDA並列化対象となるループ領域を指示すると、コンパイラは、ホスト側とGPU側の実行に必要なコードを生成します。なお、この機能は PGI C++ コンパイラではサポートせず、PGI Accelerator 製品の中の Fortran 並びに C99 言語コンパイラでその機能を提供します。

PGI AcceleratorCompiler

以下のように、-Minfo=accel オプション指定で、CUDA並列化対象ループのコンパイラ翻訳情報により、CUDA並列化の実装詳細が理解できます。

PGI AcceleratorCompiler


PGI CUDA Fortranのコーディング例

CUDA Fortran は、NVIDIA CUDA 用のネイティブなコード生成を行うために、Fortran言語を拡張し、Fortran 言語にて CUDA プログラミングを可能とするものです。NVIDIA CUDA C コンパイラと同じような言語拡張構文(シェブロン構文等)を使用することができます。Fortran言語は、C系の言語とは異なり、配列の型、形やサブルーチン間の変数の引き渡し方法が明示的な形態となっているため、CUDA C 言語よりも簡単な形でコーディングできます。この機能は、Fortran 言語をバンドルした PGI Accelerator 製品にて使用できます。

PGI CUDA FORTRAN


PGI CUDA C/C++ for Multi-core x86 コンパイル機能の概要

NVIDIA CUDA C プログラムを PGI C コンパイラでコンパイルして、この実行バイナリを x86 (x64) プロセッサ上で実行できる実行モジュールを生成します。こぼ実行モジュールは、x86 (x64) のシステム上に、NVIDIA GPU ボードがない場合は、x86(x64) CPU側のマルチコア並びに SSE 機構を使用して動作します。NVIDIA CUDA C プログラムのポータビリティ、汎用性を高めるためのコンパイル・ツールとなります。この機能は、C/C++言語をバンドルした PGI Accelerator 製品にて使用できます。

PGI CUDA-x86


PGIライセンス製品が提供する言語コンパイラとユーティリティ

PGI製品の言語コンパイラの種類、プログラム開発用ユーティリティは、以下の通りです。Windows® の Microsoft Visual Studio 統合環境上で動作する PGI Visual Fortran ソフトウェア以外は、全て「コンパイラ・コマンド」を操作して使用する製品です。PGI 製品は、いずれも 32ビット OS でも 64ビット OS でも使用できるライセンスとなっております。また、Linux、Windows、Mac OS X の各プラットフォーム用の製品をご用意しております。

言語、ツール 機能 コマンド名
F77 FORTRAN77 専用コンパイラ(32bit & 64bit) pgf77
F03 Fortran 77/90/95/2003 コンパイラ(32bit & 64bit) pgfortran
pgf95
pgf90
PGCC ANSI C99 and K&R C コンパイラ(32bit & 64bit) pgcc
PGC++ ANSI C++ コンパイラ(32bit & 64bit) pgcpp
DBG PGDBG MPI/OpenMP 並列デバッガ pgdbg
PROF PGPROF MPI/OpenMP 並列性能プロファイラ pgprof
PVF Microsoft® Visual Studio 2008/2010 統合環境プラグイン
Fortran言語を含むWorkstation/Server製品にPVFを同梱
(Windows版製品のみ)
--
GPGPU Accelerator GPUアクセラレータ用ディレクティブ対応コンパイラ
+ CUDA Fortran機能 (Fortran言語を含む製品に同梱)
+ CUDA C/C++ for x86 機能 (C言語を含む製品に同梱)
pgfortran
pgcc/pgcpp

PGIライセンス製品の機能比較

各PGIライセンス製品の提供言語コンパイラ、ユーティリティ、機能等は、以下の通りです。GPU 用のコンパイラ機能を含む製品(x64+GPU)は、(2)で示される PGI アクセラレータコンパイラ製品となります。なお、PGI Workstation 製品は、1台のみにインストール可能なノードロックライセンスで、PGI Server/CDK 製品は、同時使用ユーザ数で管理されるネットワーク・フローティングライセンス製品です。

PGI CUDA-x86

TOPへ

Linuxn対応について

[ 動作確認モデル ]

動作確認を行ったモデルには[ Linux対応 ]のマークを表示しています。

[ ディストリビューション ]

動作確認は標準のインストーラーを使用したインストールとX-windowの起動、及びLANチップの動作確認(DHCPでのインターネット接続)までを確認しました。
ディストリビューションはRed Hat Enterprise Linux とCentOSですが、ご要望によっては、FedraやUbuntuなど、その他ディストリビューションやバージョンについてもお気軽にご相談下さい。

[ 動作確認デバイス ]

ビデオ内蔵モデルについては内蔵ビデオチップを無効化し別途ビデオカード(nVIDIA社製)を搭載して動作確認を行っているモデルもあります。
また同様にオンボードLANチップではなく別途LANカード(Realtek社製、intel社製)を搭載し動作確認を行っているモデルもございます。

※音源(サウンド)の動作については弊社では確認を行っておりません。インストーラー標準のドライバーで動作する場合もございますが、Linuxのドライバー自体が無く動作認識しないチップもございます。ご理解下さい。

[ 設定、インストール ]

インテルやPGI等の有償コンパイラやMKL等のライブラリやツール類のインストール、各種サーバー構築、設定も承っています。お気軽にご相談下さい。