OpenACC とは

OpenACC(オープンアクセラレータ用)は、Cray、CAPS、Nvidia、PGIが開発した並列コンピューティングのプログラミング標準です。この規格は、異種CPU / GPUシステムの並列プログラミングを簡素化するように設計されています。
OpenMPの場合と同様に、プログラマはC、C ++、Fortranのソースコードに注釈を付けて、コンパイラ指令や追加機能を使用して加速すべき領域を特定することができます。 OpenAC 4.0以降と同様に、OpenACCはCPUとGPUの両方のアーキテクチャをターゲットにして、それらの上で計算コードを立ち上げることができます。
OpenACCのメンバーは、OpenMP標準グループのメンバーとして働いて、OpenMPの将来のリリースでアクセラレータをサポートするためにOpenMPを拡張する共通仕様を作成するためにOpenMP仕様にマージしました。これらの努力は、毎年のスーパーコンピューティング会議(2012年11月、ソルトレークシティー)を含む予定であり、OpenMPに参加しているハードウェアベンダーからのインプットで非Nvidiaアクセラレータのサポートに対処するためのコメントと議論のための技術レポートをもたらしました。
ISC'12では、OpenACCがパフォーマンスデータなしでNvidia、AMD、Intelアクセラレータで動作することが実証されました。
2012年11月12日、SC12カンファレンスで、OpenACCバージョン2.0仕様の草案が発表されました。新たに提案された機能には、データ移動に対する新しい制御(非構造化データのより良い処理や非連続メモリのサポートの改善など)、明示的な関数呼び出しと個別コンパイル(アクセラレーションされたコードのライブラリの作成と再利用を可能にする) OpenACC 2.0は2013年6月に公式にリリースされました。
バージョン2.5の仕様は2015年10月にリリースされました。仕様の最新バージョン2.6は2017年11月にリリースされました。