PGI Accelerator Compilers



美國 PGI 公司在 Vincent J. Schuster 帶領下開發出不少出色的高速 Fortran 編譯軟體,2009 年 Michael Wolfe 博士引進 GPU 架構及 CUDA 環境,將 PGI 的效能加以發揚光大,並推出 GPU 玩家一致推崇的 PGI Accelerator Compiler:
  • 採制式化方式,簡單修改傳統 Fortran/C 程式即可得到 GPU 加速 Fortran/C 程式碼。
  • 使用 PGI GPU 加速編譯器,編譯 Fortran/C 程式,過程簡單,輕鬆執行。
  • 方便產出高效能 GPU CUDA 執行碼。

█ 無痛移轉 Fortran/C 程式至 GPU 加速元件

PGI支援 Linux、Mac OSX 及 Windows 作業系統,提供完整 Fortran 及 C 語言程式編譯功能,並支援程式最佳化工具、 向量/平行化轉換選項及平行程式除錯引擎。 PGI 加速器?建立 GPU Fortran/C99 程式語言開發環境,達到執行最佳化並改善 X86_64 主機與 GPU 加速器間的資料交換技巧。 產生適用於 X64 Intel、AMD及 GPU 的單一執行碼,有助於提昇 GPU 程式開發速度。 透過 PGI Fortran 加速器編譯軟體可呼叫 CUDA 數學程式庫。選擇PGI Accelator 不必學CUDA。

█ 視窗版 PGI Visual Fortran


支援 Fortran OpenMP 編譯及自動平行化功能。 PGI Visual Fortran (PVF) GPU 加速器編譯軟體主要包含完整Fortran編譯功能,提供程式最佳化工具,向量/平行化轉換選項。並融入微軟Visual Studio環境,及平行程式除錯引擎。

█ PGI CUDA-x86 編譯軟體

為了服務早期 x86 平台擴充 GPU 卡的客群,PGI 於2011年再推出 x86 環境的 PGI CUDA C/C++ Compiler,促成 CUDA 應用軟體, 能在 PGI 環境內有效完成編譯工作,並能同時在含 GPU 加速卡或不含加速卡的 環境內執行,用於不含 GPU卡的 x86 系統,PGI CUDA C 是透過 AMD / Intel CPU 的多核心及 SIMD 功能完成平行處理的工作。

█ 支援 GPU 加速器

PGI GPU 加速器編譯軟體自動分析程式結構以及處理的資料,依程式設計者的 指令將程式碼分成 X64 CPU 及 GPU 兩部分,並充分利用 GPU 的 平行多核心、硬體 thread 功能及 SIMD 向量機器特點, 產生最佳化的計算迴圈,PGI GPU 編譯軟體能自動管理 X64 CPU 與 GPU 間的資料進出,程式設計者完全融入於標準的 HPC X64 程式環境,不須顧慮 GPU 元件的工作過程。

█ 支援 MPI 程式除錯環境及分析工具




PGDBG OpenMP / MPI 除錯軟體,提供 MPI 叢集系統完整的圖形介面, 輔助程式設計者,發現平行程式執行過程所產生的問題,PGDBG 除錯軟體提供 多程序Fortran 及 C 語言程式碼顯示視窗, 並伴隨相關的組合語言視窗,很適合同時掌控每一 MPI 或 OpenMP 程序的狀態。MPI 或 SMP 架構叢集計算各節點的平行資訊, 皆能有效的被收集及分析,有助於改善平行程式的設計理念與方法。

█ 支援編譯軟體回饋資訊,提供開發人員程式最佳化資訊



美國 PGI 公司提出 CCFF(Common Compiler Feedback Format) 構想,定義如何儲存編譯過程及相關資訊,並描述資訊格式編排方式。因此高速計算工具供應商可以藉由此類訊息強化程式最佳化之功能。參考右圖,PGI 編譯器由程式原始碼產生帶 CCFF 資訊的目標碼(Object file)。鍊結程式(Linker) 將帶有 CCFF 資訊的目標碼轉程執行碼(executable file )。執行碼執行時就能產生效能最佳化的資料檔 pgprof.out。PGPROF 工具讀取執行碼,再產生含 CCFF 資訊的XML檔,同時自 pgprof.out 檔取出執行效能資訊。CCFF 資訊,原始碼以及符號資料經過整合產生程式碼各重要程式段的執行時間相關訊息。

ccff

ccff