PGIトップ › PGIコンパイラ・ニュースリリース

ソフテックは、PGI 製品の公認正規代理店です

IBM POWER Architecture 用 PGIアクセラレータ・コンパイラ、POWER8 および NVIDIA NVLinkを使用した GPU アクセラレーションを容易に実現

ソルトレイクシティ〜SC16

2016年11月15日

NVIDIA®は、POWER8 CPUとNVIDIA NVLINK™を組み合わせたIBMのOpenPOWER LCサーバを含む、POWER CPUをベースとしたコンピュータシステム用のOpenACC®ディレクティブベースの並列プログラミングのサポートを含む、PGI Accelerator Fortran、CおよびC ++コンパイラスイートの一般的なリリースを発表しましたNVIDIA®Tesla®GPUアクセラレータを搭載しています。

この最新リリースでは、PGIユーザーは、GPUアクセラレータの有無にかかわらず、マルチコアLinux / x86またはLinux / POWER CPU上で同じソースコード、コンパイラオプション、およびビルドスクリプトを使用して、大量生産のHPCアプリケーションを容易に構築および保守できます。 これにより、HPC開発者は、システム間でアプリケーションのパフォーマンスの移植性を提供するように設計されたコンパイラの最適化と、GPUプログラミングへの容易なオンラインをサポートし、複数のシステムアーキテクチャをより効果的に活用して使用できます。

「今回のリリースでは、HPC開発者に、共通のソースコードベースを使用して、すべての主要CPUおよびアクセラレータプラットフォームのアプリケーションを一様に高性能で移植する手段を提供してきました」とNVIDIAのPGIコンパイラ&ツール担当ディレクター、Douglas Milesは述べています。 。 「この機能は、異機種間の並列コンピューティングプラットフォームが標準となり、高速化されたHPCシステムアーキテクチャが複雑なメモリ階層を発展させ、多くの場合プログラマまたはコンパイラによって管理される必要があるため重要です。

OpenPOWER用の新しいPGIコンパイラには、Fortran 2003、C11およびC ++ 14言語機能に加え、OpenMP 3.1、OpenACC 2.5、CUDA®FortranなどのPGIのCPUおよびアクセラレータ技術と最適化が含まれています。 PGI Accelerator for Powerには、PGPROF CPU + GPUパフォーマンスプロファイラも含まれています。これは、アクセラレータ対応アプリケーションのパフォーマンス解析と最適化を可能にする重要なコンポーネントです。 PGI AcceleratorコンパイラとPOWER用ツールは、新しい無償のPGI Community Editionを含む、Linuxシステム用のすべてのPGI製品に含まれています。

「OpenMPやOpenACCのようなより簡単なプログラミング手法は、GPUアクセラレーション・システムの普及に不可欠です」とIBMのハイパフォーマンス・コンピューティング&データ・アナリシス担当副社長であるSumit Gupta氏は述べています。 「新しいPGIコンパイラは、POWER8 CPUとNVIDIA Pascal P100 GPUアクセラレータとページ移行エンジンとの高速NVIDIA NVLink接続を利用して、高性能コンピューティングのパフォーマンスやデータ分析ワークロードを大幅に加速し、強化します。

OpenPOWER用PGIコンパイラの主な利点は次のとおりです。

  • CPUおよびCPU + GPUアーキテクチャ間でのパフォーマンスの移植性
  • x86およびOpenPOWERプロセッサベースのシステム全体で単一のソースコードベースを使用する
  • NVIDIA Tesla GPUでのOpenACCおよびCUDA Fortranのサポート
  • NVIDIA NVLinkインターコネクトとNVIDIA Tesla P100 GPUを搭載した新しいPOWER8 CPUベースのシステムのサポート

OpenPower用のPGIコンパイラスイートは、Oak Ridge National Laboratoryがx86 CPU、OpenPOWER CPU、およびNVIDIA GPU上で同じソースコードベースを使用して大規模なHPCアプリケーションを構築し実行するために使用するツールの1つです。

「新しいプラットフォームのHPCアプリケーションをプラットフォーム間で移植することは、新しいハードウェアテクノロジを採用する上で非常に困難な作業です」とOak Ridge National LaboratoryのサイエンティフィックコンピューティンググループリーダーであるTjerk Straatsma氏は述べています。 「このようなアーキテクチャとパフォーマンスの移植性は、アプリケーション開発者やユーザーにとって重要なことです。タイタンのような既存のCPU専用アプリケーションやGPU対応アプリケーションから、ORNLにインストールするSummitシステムを含む今後の主要システムに移行します。

PGI Acceleratorコンパイラ、x86 マルチコア CPU 用の OpenACC サポートを追加

カリフォルニア州サンタクララ

2015年10月28日

NVIDIAは、PGI Accelerator™Fortran、CおよびC ++コンパイラのバージョン15.10をリリースし、x86アーキテクチャのマルチコア・マイクロプロセッサでOpenACC®指令ベースの並列プログラミング標準のサポートを追加しました。

新しいPGIコンパイラは、パフォーマンスの移植性を提供し、OpenACC対応ソースコードをマルチコアCPUまたはGPUアクセラレータで並列実行するためにコンパイルできます。 この機能は、プログラマーに多大な柔軟性を提供し、単一バージョンのソースコードで複数のシステムアーキテクチャーを活用できるアプリケーションを開発できるようにします。

「私たちの目標は、共通のソースコードベースを使用して、HPC開発者がすべての主要なCPUおよびアクセラレータプラットフォームに均一な高性能でアプリケーションを簡単に移植できるようにすることです」と、NVIDIAのPGIコンパイラ&ツールディレクター、Douglas Milesは述べています。 「この機能は、より柔軟なアプリケーションプログラミング手法を必要とする様々なシステムアーキテクチャが存在するようなエキサスケールコンピューティングに向けた競争において特に重要になります。。

この新しいPGI機能は、x86プロセッサまたはマルチソケットサーバのすべてのコアで並列実行用のOpenACC計算領域をコンパイルします。 コアは、集約されて共有メモリアクセラレータとして扱われ、結果として得られるOpenACCプログラムのすべてのデータ移動オーバーヘッドが排除されます。 デフォルトでは、コンパイラはシステム内のすべての使用可能なコアを使用するコードを生成し、プログラマがこの動作を制御および微調整するためのいくつかの方法が存在します。

「コード変更のないCPUでOpenACCを実行し、OpenMP / MPIの実装と同等の性能を得ることができ、GPUで実行すると4倍のパフォーマンスを得ることができることに非常に感銘を受けました」と英国の原子力兵器施設のWayne Gaudin氏は述べています。 「パフォーマンスの移植性とコードの将来的な校正の観点から、これは優れた結果です」

マルチコアCPUでOpenACCを実行する主な利点は次のとおりです。

  • 並列実行のためのマルチコアCPUまたはマルチソケットサーバのすべてのコアの効果的な使用
  • Fortran、C、およびC++ の CPU および GPU 間の共通プログラミングモデル
  • 並列実行のインクリメンタルな最適化を可能にするKERNELS指令を使用した、プログラムにおける既存のマルチコア並列性の迅速な活用
  • マルチコアCPUとGPUでのスケーラブルなパフォーマンス

「HPCアプリケーションをあるプラットフォームから別のプラットフォームに移植することは、画期的なハードウェア技術の導入において最も重要なコストの1つです」とOak Ridge National Laboratoryのプロジェクトディレクター、バディ・ブランド氏は述べています。 「マルチコアx86 CPU用のOpenACCは、TITAN のようなマシンから今後の主要システムのすべてに至るまで、既存のCPU専用アプリケーションとGPU対応アプリケーションの連続性とコード移植性を提供します。

OpenACCの成長の勢い

今日、OpenACCを使用している開発者は1万人を超えています。最近のいくつかの開発では、高性能コンピューティングにおけるOpenACCの採用が増加しています。 最近実施された世界中のハッカソンでは、様々な科学分野の専門家がアクセラレータとOpenACCを使って科学的応用を加速しています。例えば、 MRI画像再構成(PowerGrid)、計算流体力学(INCOMP3D、HiPSTARおよびNumeca)、宇宙論および天体物理学(RAMSES、CASTROおよびMAESTRO)、量子化学(LSDALTON)、計算物理学(NekCEM)などのさまざまな分野のアプリケーション分野の人たちが OpenACC を使用しています。

さらに、Gaussian、Inc.は、GAUSSIAN計算化学アプリケーションをアクセラレータに移植するためにOpenACCを使用していることを発表しました。 最近のフランスのアネシーでの気候と天気に関するiCAS2カンファレンスでは、気象学と気候学のスイス連邦事務所であるMeteosuisseが、GPUアクセラレータで動作する世界で初めての気象予測アプリケーションであるCOSMOのGPUアクセラレーションバージョンの導入を発表しました。

最近の150人のOpenACC開発者のアンケートでは、回答者の94%がアクセラレータで実行するとスピードアップを得ていると報告しており、90%以上がOpenACCを推奨しています。

OpenACC の詳細については、こちらのページをご覧ください

PGI Acceleratorコンパイラ、AMD社のAPUおよびGPUに対応


[2013/07/18] STマイクロエレクトロニクス


PGI Betaリリースが、AMD社のAPUとディスクリートGPUを対象にした
OpenACCディレクティブ・ベースのアクセラレータ・プログラミングをサポート


STマイクロエレクトロニクス(NYSE:STM、以下ST)の完全子会社で、高性能コンピューティング(HPC)向けコンパイラの主要サプライヤであるPortland Group(PGI)は、AMD社のAPU(Accelerated Processing Unit)とdGPU(discrete Graphics Processing Unit)を対象にしたOpenACC® APIをサポートするPGI Accelerator™ Fortran/C/C++コンパイラの Betaリリースが利用可能になったことを発表しました。

Portland GroupのディレクタであるDouglas Milesは、次の様にコメントしています。「PGIの目標の1つは、科学技術分野の専門家によって開発および維持されるアプリケーションに向けた、生産性の改善と性能可搬性の提供です。OpenACC規格は、ベンダー中立でプラットフォームから独立したディレクティブ・ベースのアクセラレータ・プログラミング・モデルに関するHPCコミュニティの関心に、直接応えるものとして開発されました。AMD社のAPUとGPUに対するサポートがPGI Acceleratorに追加されたことは、PGIの異種並列コンピューティングを実現するOpenACCおよびコンパイラ技術の進化における最新のステップです。」

2011年11月に発表されたOpenACC APIは、PGI、Cray社、NVIDIA社がCAPS Entreprise社の支援を受けて開発されたものです。OpenACCは、CUDA®並列プログラミング・アーキテクチャを採用し、NVIDIA社のGPUに対応しているPGIコンパイラで、既にサポートされています。OpenACC 1.0規格は、PGI Acceleratorプログラミング・モデルに基づいており、創設メンバーが協力して開発を行いました。OpenACC 2.0の仕様は、最近承認されました。

ディレクティブ・ベースのプログラミング

OpenACC API(Application Programming Interface)は、標準のC、C++、Fortranでコードのループ部分と領域を指定するためのコンパイラ・ディレクティブ群を記述します。これらの領域は、ホストCPUから付随するアクセラレータにオフロードできるため、オペレーティング・システム、ホストCPU、およびアクセラレータの全体に渡る可搬性を提供します。コンパイラに並列化の機会を提示するディレクティブによって、演算処理をアクセラレータにマッピングする細かい作業をコンパイラで行うことが可能となり、アプリケーション性能の大幅な向上が実現します。ディレクティブを使用すると、開発者は、多くのプラットフォームやベンダと互換性がある単一のコード・ベースを持つことができます。これは、マルチプラットフォームおよび複数世代のアプリケーション開発における大きなメリットとなります。

1200人を超えるOpenACCの評価者に対する最近のアンケートでは、回答者の70%以上がOpenACCの使いやすさに気付き、75%以上がアクセラレータで実行したときの速度向上を確認したと報告しています。

AMD社のサーバ・ソフトウェア・プラニング部門ディレクタであるMargaret Lewis氏は、次の様にコメントしています。「当社は、APUとディスクリートGPUが対象のOpenACC APIをサポートしたPGI Accelerator Fortran/C/C++コンパイラ Betaリリースに満足しています。OpenACCは、演算高速化をより簡単に活用する手段を探しているHPC研究者やプログラマにより、導入が進んでいます。OpenACCは、プログラマに対して、なじみのあるプログラミング手法を使用してアプリケーションを簡単に高速化できる方法を提供します。また、レガシー・アプリケーションのコード可搬性を維持しながら、最新の高性能異種並列コンピューティング・アーキテクチャを活用する方法も提供します。」

AMD社のディスクリートGPUおよびAPUプラットフォームのOpenACC規格に対応したPGI Acceleratorコンパイラの最初のBetaリリースは、現時点では限定的な提供となっており、オープンBetaリリースは2013年後半を予定しています。Betaリリースのテストに関するご質問は、beta@pgroup.comまでお問い合わせ頂けます。また、Betaソフトウェアには、限定使用ライセンスが付属しており、ライセンス契約書は、こちらから入手可能です。

OpenACCに対応したPGI Acceleratorコンパイラの詳細については、www.pgroup.com/resources/accel.htmをご覧ください。OpenACC APIおよび規格の詳細については、www.openacc-standard.orgをご覧ください。

Portland Group、 Portland Group、主要HPCコンパイラおよび開発ツールの新バージョンをリリース


[2013/03/01] STマイクロエレクトロニクス


PGI 2013がHPCアクセラレータのプログラミング・サポートの拡大と
業界トップクラスのマルチコアx64性能を提供


STマイクロエレクトロニクス(NYSE:STM、以下ST)の100%子会社であるPortland Group®(以下PGI)は、Linux、Apple OS X、Microsoft Windows向けに、2013年版のPGI®高性能並列化コンパイラおよび開発ツールの提供を開始したことを発表しました。PGI 2013には、OpenACC APIを使用して最新のHPCアクセラレータをプログラミングするための新機能が含まれています。また、マルチコアx64プロセッサ上での性能が大幅に向上します。

PGIのディレクターであるDouglas Milesは、次の様にコメントしています。「高性能コンピューティング(HPC)を取り巻く状況は急速に変化しています。NVIDIA社、Intel社、AMD社による新アクセラレータの導入で、HPCユーザにはこれまでになく多くの選択肢が与えられています。PGI 2013では、PGI Acceleratorのプログラミング・ツール内でのサポートが拡張されているため、新しいプラットフォームが持つ大きな潜在能力の利用を考える開発者は、一貫性、生産性、可搬性に優れた方法でこれを実現できるようになります。」

新しいPGI Accelerator C++コンパイラが追加されたことで、PGI Accelerator™ 2013リリースのネイティブFortran 2003およびC11コンパイラは、OpenACCディレクティブ・ベースのアクセラレータ・プログラミング・モデルに対するサポートを拡張しています。3つのコンパイラ全てが、OpenACC規格と、複数デバイスに対応するための新しいPGI拡張に対するサポートを拡充しました。PGI Acceleratorコンパイラは、最新のNVIDIA Tesla K20およびK20X GPUをターゲット・アクセラレータとして利用可能としました。Intel Xeon Phiコプロセッサ、AMD APU、およびOpenACC準拠の個別GPUに対するサポートは、今後のリリースで追加される予定です。PGI 2013の新しいCUDA Fortran拡張にはテクスチャに対するサポートに加え、適切なCUDA対応ハードウェア上での分割コンパイルや動的な並列処理に対するサポートが含まれています。PGI AcceleratorとCUDA Fortranは、単一のプログラムまたはホスト・スレッドから複数デバイスを使用できるようになり、さらにNVIDIAの最新CUDA 5.0ソフトウェア環境をサポートしています。

PGI 2013では、アクセラレータのサポート拡張に加え、最新のAVX対応プロセッサ(AMD社およびIntel社)を使用した新しいSPEC® OMP2012ベンチマーク・スイートで業界をリードするOpenMPの並列性能を含む、マルチコアx64プロセッサでの性能が大幅に向上しています(下記グラフ参照)。SPEC CPU 2006の浮動小数点ベンチマークでの全般的な性能は、2012年2月にリリースされた初期バージョンのPGI 2012より10%以上向上しています。その他、HPCベンチマークでも、同様の性能向上が確認されました。

PGI2013 OpenMP性能

PGIが測定したSPECompG_base2012の相対性能(測定期間:2013年1月28日~2月4日)。
OpenMPのスレッド数が各システムのコア数に一致するよう設定。

PGI 2013の追加機能

  • 完全なPGI最適化スイートに加え、CUDA-x86、OpenMP、OpenACCのサポートを備えたGNU 4.7互換の全く新しいC++コンパイラの提供
  • 再帰的I/O、パラメータ化された派生型・無指定型パラメータ、無指定型文字長を含むFortran 2003機能の追加
  • タスク生成とCでの新しいアトミック関数を含むOpenMP 3.1サポート
  • PGI Visual Fortran®をVisual Studio 2012に統合(Visual Studio 2012 shellを含む)
  • MPI/OpenMP対応PGDBG®並列グラフィカル・デバッグ・ツールのソース・コード表示用インタフェースの改善(ユーザ設定可能な新しいディスアセンブリ表示を含む)

PGI 2013は、Red Hat Enterprise Linux 6.3、Fedora 17、OpenSuSE 12、Ubuntu 12.10、Windows 8、OS X Mountain Lionを含む最新のオペレーティング・システムに対応しています。

*SPEC OMP2012はプラットフォーム間での数値計算性能の比較評価を提供するためのベンチマークです。詳細については、www.spec.orgをご覧ください。SPEC OMP2012でのPGI 2013の性能に関する詳細情報は、PGIのWebサイトwww.pgroup.com/benchmarkをご覧ください。

SPEC®はStandard Performance Evaluation Corporation(SPEC)の登録商標です。

Portland Group、 新しいNVIDIA Tesla K20シリーズのGPUアクセラレータに対応する PGI Acceleratorコンパイラを発表


[2012/12/25] STマイクロエレクトロニクス


PGI 2013リリースで、Kepler機能へのアクセスが可能に


STマイクロエレクトロニクス(NYSE:STM、以下ST)の100%子会社で、高性能コンピューティング(HPC)向けコンパイラの主要サプライヤであるPortlandGroup(R)(以下PGI)は、SC12において、PGI Accelerator(TM)コンパイラのPGI2013リリースに、新しいNVIDIA(R) Tesla(R) K20シリーズのGPUアクセラレータ、CUDA(R) 5.0並列コンピューティング・プラットフォームおよびプログラミング・モデルのサポートを追加することを発表しました。

PGIのコンパイラおよびツールは、気象予測、地球物理学の計算、空力シミュレーション、構造解析、自動車衝突試験、計算化学および関連分野において、複雑なモデリングおよびシミュレーション向けのHPCアプリケーションを作成・実行するために、科学者や技術者によって使用されています。これらのコンパイラとツールは、AMD社・インテル社の最新の64bitプロセッサと、新しいNVIDIA Tesla K20XおよびK20 GPUアクセラレータをサポートしています。NVIDIA Tesla K20シリーズのGPUアクセラレータは、次世代のNVIDIA Kepler(TM)コンピューティング・アーキテクチャに基づいており、Linux、OS X、Windowsプラットフォーム上で動作します。

PGIのディレクターであるDouglas Milesは、次の様にコメントしています。「当社はNVIDIA社とCUDA 5.0を確実にトラッキングすることで、この最新世代のGPUアクセラレータで動的並列処理(Dynamic Parallelism)と一般的な関数呼び出しのサポートを実現しています。また当社は、Tesla K20アクセラレータのパフォーマンスを最適化するためにコード生成の調整を行ってきました。顧客から提供された初期のレポートは、GPU対応のコードに大いに役立っていることを示しています。」

2009年に発表された当時、PGI Acceleratorコンパイラは、x64ホスト・プログラムからGPUアクセラレータに計算を自動的にオフロードする業界初の規格準拠FortranコンパイラおよびCコンパイラでした。また、2009年には、NVIDIACUDA CのFortran版であるPGI CUDA Fortranも発表されています。全てのPGIAccelerator Fortranコンパイラに含まれるCUDA Fortranは、NVIDIA GPUのプログラミングをFortranで行うためのFortran 2003コンパイラとツール・チェーンで構成されています。PGI 2013リリースでは、最新のKeplerベースのTesla GPUアクセラレータに搭載されている新しい動的並列処理機能と、CUDA5.0の分割コンパイル機能およびGPUオブジェクト・ファイル・リンク機能の使用に興味がある開発者のために、CUDA Fortran拡張機能が追加される予定です。PGIは、SC12のPGIブース(No.1321)にて最新のPGI Acceleratorコンパイラのデモを行いました。

NVIDIA社のTesla accelerated computing business部門 ジェネラル・マネージャであるSumit Guptaは、次の様にコメントしています。「開発者は、強力なPGI Acceleratorコンパイラを利用することで、最先端のパフォーマンスと高効率を可能にするCUDA 5.0の機能およびTesla K20アクセラレータを最大限に活用できます。Kepler GPUは、動的並列処理やHyper-Qといった革新的なテクノロジーによって高性能・高効率化され、幅広い開発者やアプリケーションに対応できるようになっています」

PGIコンパイラ・スイートには、Fortran 2003、C11、C++の各プログラミング言語向けのPGFORTRAN(TM)コンパイラ、PGCC(R)コンパイラ、PGC++(TM)コンパイラと共に、グラフィカルOpenMPおよびMPI並列デバッガPGDBG(R)と、PGPROF(R)パフォーマンス・プロファイラが含まれています。x64向けのPGIコンパイラとツールは、Fortran、C、C++でのOpenMP並列プログラミング機能拡張の完全なネイティブ・サポート、64bitアドレッシングの完全なサポート、ネイティブの統合スカラ / ベクトルSSEコード生成機能とAVXコード生成機能、および数学・技術・化学・財務アプリケーション向けに高度に最適化された数値関数のACMLライブラリのバンドル版を提供します。さらに、x64+アクセラレータに対応したPGI Accelerator(TM)コンパイラ・スイートには、AMD社、Intel社、NVIDIA社のアクセラレータをOpenACCディレクティブ・ベースのFortran、C、C++でプログラミングするためのサポート、NVIDIA GPUに対応したCUDAFortran拡張機能、および64bit / 32bitのx86 CPUに対応したCUDA C/C++拡張機能も含まれています。PGIコンパイラは、AMD社・Intel社のCPUおよびNVIDIAのCUDA対応GPUに対して、高度に最適化されています。PGIコンパイラ製品には、Linux版、OS X版、Windows版があります。

Portland Group、Intel社のXeon Phiに対応するOpenACCを提供


[2012/12/25] STマイクロエレクトロニクス


GPUだけでなく、異機種環境のHPCシステムにPGI Acceleratorプログラミング・モデルを導入


STマイクロエレクトロニクス(NYSE:STM、以下ST)の100%子会社で、高性能コンピューティング(HPC)向けコンパイラの主要サプライヤであるPortland Group®(以下PGI)は、OpenACC対応のPGI Accelerator™コンパイラ技術をIntel® Xeon Phi™コプロセッサまで拡張する計画を発表しました。Intel Xeon Phiコプロセッサは、インテルのMany Integrated Core(MIC)アーキテクチャに基づく製品シリーズです。現在、科学者や技術者は、NVIDIA社のCUDA対応GPUの優れた並列処理能力を活用するための手段として、PGI Accelerator Fortran / Cコンパイラを使用しています。PGI Acceleratorコンパイラを使用するソフトウェア開発者は、既存のコード・ベースを使用してビルド・スクリプトに小規模な変更を加えるだけで、Intel Xeon Phiコプロセッサにも短期間で対応できます。

Portland GroupのディレクターであるDouglas Milesは、次の様にコメントしています。「これまで、産業界の最高情報責任者(CIO)や政府・大学の研究所の責任者は、アクセラレータ技術の評価に際し、難しい決断を迫られていました。どのテクノロジが勝ち残るかを静観すべきか、どのプログラミング・モデルを選択すべきか、これらのプログラミング・モデルの使用に向けて開発者をどのように再教育すべきか、そしてさまざまな種類のホストCPUとコプロセッサに対してアプリケーションを将来も使用し続け、移植できるかどうかの判断です。PGI Acceleratorコンパイラは、標準的なOpenACCディレクティブを使用したIntel Xeon Phiコプロセッサのプログラムを可能にします。これらのOpenACCディレクティブは、主たるHPCセンターやサイトですでに進められているアクセラレータ・アプリケーション開発と完全に互換性があります。」

2009年に発表されたPGI Acceleratorコンパイラは、フルタイムのプログラマではない科学者や技術者、その他の分野の専門家を対象に、高水準のコプロセッサ・プログラミング・モデルを提供します。PGI Accelerator Fortran 2003 / C / C++コンパイラを使用することで、プログラマは、アプリケーションの数値計算部分をコプロセッサにオフロードできます。この処理では、他のコンパイラからはコメントとして扱われる可搬性の高いコンパイラ・ディレクティブを既存の規格準拠プログラムに追加し、適切なコンパイラ・オプションを指定して再コンパイルを実行します。2012年、PGI Acceleratorコンパイラは、新たなデファクト・スタンダードであるOpenACCディレクティブをサポートするために、強化されました。

OpenACCディレクティブによるコプロセッサのプログラミングにおける優位性

  • ハイレベル : OpenCLやCUDA、その他の低レベル・プログラミング・モデルの経験が不要。特定分野の専門家に最適。
  • 効率的 : 高度に設計されたアルゴリズムにより、低水準プログラミング・モデルを使用して記述されたプログラムでも、ディレクティブを使用した場合と同じように実行可。
  • シングル・ソース・ベース : コプロセッサ用の別ソース・コードが不要。PGI Acceleratorコンパイラまたはその他の規格準拠コンパイラを使用して、同じプログラムをマルチコアCPU用にコンパイル可能。
  • パフォーマンスの可搬性 : 複数ベンダーのGPUアクセラレータおよびコプロセッサをサポート。
  • 段階的 : 開発者は、時間が許す範囲内で、アプリケーションの一部分の移植・調整が可能。全体をまとめて書き直す作業が不要。
  • 迅速 : 多くの開発者が、わずかな労力で結果をすぐに確認可能。

米国オークリッジ国立研究所のTitanプロジェクト担当ディレクターであるBuddy Bland氏は、次の様にコメントしています。「PGI OpenACCを使用することで、プログラマは、TitanのハイブリッドCPU / アクセラレータ・アーキテクチャのパフォーマンス面と電力効率面のメリットを最大限に引き出す、可搬性の高いアプリケーションを開発することができます。私たちは、PGIがIntel Xeon Phiのサポートを追加することを嬉しく思います。これにより、Titan向けに開発および高速化されたアプリケーションを、Intel社のコプロセッサを搭載したHPCシステムに簡単に移植できるようになります。」

米国サンディア国立研究所のSimon Hammond氏は、次の様にコメントしています。「次世代コンピューティング・アーキテクチャの継続的な評価の一環として、サンディア国立研究所は、Intel社、NVIDIA社、AMD社、ARM社、IBM社等、さまざまなベンダーのソリューションを積極的に評価しています。私たちは既に、NVIDIA社製アクセラレータでの試験的なコード開発にPGIのコンパイラを使用しています。PGIがOpenACCを拡張してIntel社のXeon Phiプロセッサをサポートしたことで、オープン規格ベースのプログラミング・モデルを、さまざまなアクセラレータ・ハードウェアにわたって使用できるようになりました。」

米国国立再生可能エネルギー研究所のHPC研究員であるJohn Michalakes氏は、次の様にコメントしています。「私は2008年から断続的に、PGIと協力して、現在のマルチコア・ノードと将来のアクセラレータ対応計算ノードに対応できるプログラミング・モデルを模索してきました。プラットフォーム間での機能とパフォーマンスの可搬性を実現するプログラミング・モデルおよびコンパイラの作成において、PGIのコミットメントに疑いの余地はありません。これらのコンパイラをXeon Phiで使用できることを楽しみにしています」

海洋大気庁地球システム調査研究所(米国ボールダー)のグローバル・システム部門のTom Henderson氏は、次の様にコメントしています。「私たちは、数値気象予報モデルであるFIMとNIMのパフォーマンスを、NVIDIA社のGPUとIntel社のXeon Phiコプロセッサの両方で調査しています。NVIDIA社製品の作業にはPGIのコンパイラを既に使用しているので、PGIが両タイプのアクセラレータに対応する統一された標準プログラミング・モデルとしてOpenACCをサポートすることを嬉しく思います。PGI OpenACCのパフォーマンスの可搬性を提供するソリューションにより、GPU、CPU、Xeon Phiに対応した単一のソース・コードを維持できるようになることを期待しています。」

Xeon PhiコプロセッサにおけるOpenACC規格のベータ版サポートは、2013年前半のPGIリリースにおいて計画されています。最新のPGI契約を含むPGI Acceleratorライセンスがあれば、無料で利用することができます。OpenACCディレクティブに対応したPGI Accelerator Fortran/C/C++コンパイラは、現在、Linux、OS X、Windowsで動作するx64+NVIDIAシステムをサポートしています。コンパイラは、NVIDIA社のCUDA対応GPUを搭載した全てのIntel社製プロセッサおよびAMD社製x64プロセッサ・ベースのシステムでサポートされています。OpenACCに対応したPGI Acceleratorコンパイラの詳細については、http://www.pgroup.com/accelerateをご覧ください。OpenACC APIおよび規格の詳細については、www.openacc.orgをご覧ください。Intel Xeon Phiコプロセッサの詳細については、www.intel.comをご覧ください。

Portland Group、AMD社とAPU用コンパイラで連携


[2012/12/6] STマイクロエレクトロニクス


STマイクロエレクトロニクス(NYSE:STM、以下ST)の100%子会社で、高性能コンピューティング(HPC)向けコンパイラの主要サプライヤであるPortland Group®(以下PGI)は、PGI Accelerator Fortran / C / C++コンパイラがAMD社のAPU(アクセラレーテッド・プロセッシング・ユニット)とディスクリートGPU(グラフィック・プロセッシング・ユニット)アクセラレータでまもなく使用可能になることを発表しました。PGIは、AMD社との緊密な連携によりPGI Acceleratorのディレクティブ・ベース・コンパイラを拡張し、AMD社製GPUアクセラレータで直接動作するコードと、AMD社製APUのCPU・GPU演算機能の両方を自動的に使用する異機種x64+GPU実行可能ファイルを生成します。

2009年に発表されたPGI Accelertorコンパイラは、演算処理をx64ホスト・プログラムからGPUアクセラレータに自動オフロードする規格に準拠した業界初のFortranおよびCコンパイラでした。並列プログラマは、PGI Acceleratorプログラミング・モデルにより、「ディレクティブ」と呼ばれるヒントを使用してコードをホストCPUから付随するアクセラレータへのオフロードが可能になり、アクセラレーションに適したコード領域を特定できます。ディレクティブは、コンパイラに並列化の機会を提示するとともに、ループを特定のアクセラレータに効率的にマッピングする方法およびデータの移動を最適化する方法の詳細を指定するためにも使用できます。また、ディレクティブは、演算処理をアクセラレータにオフロードするための細かい作業をコンパイラに任せることで、開発者がアルゴリズムとアプリケーションに注力できるようにします。コンパイラ・ディレクティブを使用する主なメリットは、既存ソース・コードに対して移植性を阻害しない形で段階的に変更を行うことにより、アプリケーションのパフォーマンスが大幅に改善されることです。

PGIのディレクタであるDouglas Milesは、次の様にコメントしています。「PGI Acceleratorコンパイラは、増加中のディレクティブを使用するHPC開発者に、AMD社のAPU・GPUプログラミングの道を開き、科学・工学アプリケーション開発を加速させます。当社は、AMD社と協力することで、メインストリームのCおよびFortran開発者が異種プログラミングに容易にアクセスし、これらの装置の能力を活用できるようにします。」

AMD社のビジネス・アライアンス担当コーポレートVPであるTerri Hall氏は、次の様にコメントしています。「当社は、標準的なコンパイラ・ディレクティブの使用を通して、APUを統合したAMDプラットフォームの演算能力が確実に選択されるよう、PGIと協力していくことを楽しみにしています。このような取り組みは、開発エコシステムとAMDプラットフォームの機会を拡張する上で重要です。」

2012年6月、PGIは、PGI Acceleratorの製品ラインを通して、OpenACCアプリケーション・プログラミング・インタフェース(API)バージョン1.0をサポートしたことを発表しました。このAPIは、PGIを含むHPC業界の複数社が合同で策定したディレクティブ・ベースのアクセラレータ・プログラミング仕様です。OpenACC APIと規格の詳細は、www.openacc.orgをご覧ください。

PGI Acceleratorコンパイラには、GPU機能の他にもPGIのx86ホスト・パフォーマンス最適化技術(OpenMP拡張を含む)の完全なスイート、自動SIMDベクトル化、自動並列化、プロシージャ間分析、関数のインライン化、メモリ階層の最適化などが含まれています。