NVIDIA 針對異質超級運算推出最新版編譯器
NVIDIA (輝達) 今天宣布推出 17.7 版 PGI® 2017 編譯器與工具,協助高效能運算系統開發者針對搭載多核 CPU 與異質化 GPU 加速器的系統,開發出效能更高的軟體,同時大幅簡化程式設計流程。
即日釋出的 PGI 17.7 編譯器與工具的關鍵特點包括:
- 支援Tesla V100 GPU: PGI OpenACC 與CUDA Fortran現已支援新款NVIDIA Volta GV100 GPU,提供更多記憶體頻寬、串流多重處理器、新一代NVIDIA NVLink™以及全新微架構功能,堆砌出更好的效能與可編程功能。
- OpenACC支援CUDA整合記憶體:PGI 17.7 版編譯器能利用 CUDA 整合記憶體,簡化針對 GPU 加速系統程式的編譯流程。藉由開啟簡易編譯器選項,OpenACC 即可在 CUDA 整合記憶體中配置資料的存放位置,而不需撰寫資料移動程式碼或指令。
- 支援多核 CPU 的 OpenMP 4.5 :初始針對 OpenMP 4.5 語法與功能的支援,即可針對大多數運行於多核CPU系統中的 OpenMP 4.5 平行處理進行編程。程式中的目標區塊(TARGET)在預設支援條件設定後,會將多核系統當成目標,而PARALLEL 以及DISTRIBUTE等程式迴圈則能分散到所有OpenMP執行緒進行平行處理。
- 對Fortran語法的衍生類別進行深層複製: 透過 OpenACC 指令能在CPU主控端與GPU元件記憶體之間搬移匯整或深層巢狀Fortran資料物件,包括指標型物件的巡行與管理作業。
- C++ 語言方面的改良:PGI 17.7 C++ 編譯器內含許多逐次擴增的 C++17 功能,並將其彙整到 CUDA 9.0 NVCC 主編譯器的支援範圍內。在 LCALS 迴圈處理性能量測指標中效能平均提升了20%。
- 在 OpenACC 程式區段中使用 C++14 Lambdas 函數:C++ 語言的lambdas函數,能在匿名函式物件被呼叫或是以參數形態被傳遞時,提供一種便利的方法來定義其物件。從 PGI 17.7 版開始,C++語言撰寫程式的 OpenACC 運算區段都支援 lambdas 函數,包括針對不同編程模型或平台生成對應的程式碼。 C++14 則引進更多lambdas函數用法,尤其是多類型的 lambdas函數。上述這些功能都可運用在 OpenACC 程式中。
- 與cuSOLVER 函式庫互通:透過使用 PGI 提供的介面模組與 PGI 17.7 內建的 PGI 版 cuSOLVER 函式庫,即可呼叫包括 CUDA Fortran、OpenACC Fortran、C 以及 C++ 等語言的最佳化 cuSolverDN 函式。
- 支援 NVIDIA Tesla GPU與多核 CPU 處理的 PGI Unified Binary:使用 OpenACC 編譯出的程式不僅支援 GPU 加速,還能在多核CPU上支援平行處理。在搭載GPU的系統上運行時, OpenACC 支援區段分載以及在GPU上執行程式。當在沒有安裝GPU的系統上運行時,OpenACC 的程式區段能分散到系統中所有CPU核心上同步處理。
- 全新分析功能支援 CUDA 整合記憶體與OpenACC :PGI 17.7 Profiler現已加入多項全新 OpenACC 分析功能,包括支援有連結 GPU 與無連結 GPU 的兩種多核 CPU 平台,另外還新增全新的摘要(summary)檢視功能,能顯示處理每種 OpenACC 程式碼結構所耗費的執行時間。新增的 CUDA 統合記憶體功能,能追蹤出每項 CPU 分頁錯誤對應到哪些程式碼,以及這些程式碼所涉及的資料所在位置,並支援全新 CUDA 整合記憶體分頁頻繁的置換、節流、遠端對應事件、NVLink以及其他諸多功能。
PGI 17.7的其他功能與改良包括所有支援全方位平台環境模組、預製熱門開源函式庫與程式,以及新推出的《運用 OpenACC 執行平行運算》的教學系列影片 。
欲了解 PGI 17.7 完整的特色與功能請點此瀏覽, 即日起 PGI 17.7 將透過 PGI 官網開放給 PGI Professional 維護方案訂購用戶下載。