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