NVIDIA推出了首款正式发布的结合OpenACC的PGI Fortran、C和C++编译器,定位于Linux/OpenPOWER和Tesla计算系统,包括将POWER8 CPU与NVIDIA NVLink互联技术、NVIDIA Tesla GPU加速器结合于一体的IBM OpenPOWER LC服务器。

简化从Linux/x86到基于Linux/OpenPOWER处理器的服务器迁移

PGI for OpenPOWER可将PGI编译的HPC应用从Linux/x86轻松移植到Linux/OpenPOWER,通常采用简单的重新编译,其中包括对OpenMP 3.1、OpenACC和CUDAFortran并行编程的支持。这其中的范例便是WRF天气研究和预测模型,它结合了各种支持软件包,这些软件包由800,000多行的大部分是Fortran源代码的程序组成。OpenMP的WRF 3.8.1版本可以采用新的PGI 16.10编译器(带有相同的生成文件(makefiles)、编译器选项、源代码和开源支持包),在Linux/OpenPOWER或Linux/x86中进行编译。

OakRidge National Laboratory的应用 

适用于OpenPOWER的PGI编译器套件正是橡树岭国家实验室使用的工具,他们采用相同的源代码库基于x86 CPU、OpenPOWER CPU和NVIDIA GPU构建和运行大规模HPC应用。

“将HPC应用从一个平台移植到另一个平台,这在应用新的硬件技术时的确是一项重要且极具挑战性的工作,”橡树岭国家实验室的科学计算部主管Tjerk Straatsma说道,“类似这样的架构和性能可移植性对我们的应用开发人员和用户而言至关重要,因为我们需要从当前机器(如Titan)中仅适用于CPU和支持GPU的应用迁移到DOE即将发布的重要系统中,其中包括我们将要安装在ORNL的Summit系统。”ORNL即将安装的CORALSummit系统将会以POWER9 CPU和NVIDIAVolta GPU为基础。

 

OpenACC:GPU计算的便捷入口

除了在Linux/x86和Linux/OpenPOWER平台之间的移植便捷性之外,新的PGI编译器可以支持采用Fortran、C和C++等语言、基于OpenACC指令的GPU编程,作为配置NVIDIATesla 加速器的GPU计算的便捷入口。

 

NVLink:瓦解CPU与GPU之间的存储障碍

除了Linux/x86和Linux/OpenPOWER平台之间的移植便捷性之外,新的PGI编译器还可实现OpenACC和NVIDIA面向PascalGPU的CUDA 8.0 Unified Memory功能之间的互操作性。将PGI OpenACC 编译器指定为-ta=tesla:managed 选项,可以实现这个功能,其中大多数类型的可分配数据位于CUDA Unified Memory之中。在CPU主存储和GPU设备存储之间的这些变量和数据结构的移动之后会由CUDA存储管理器按照分页方式管理,而不是由使用OpenACC指令或编译器运行时系统的程序来管理。

在这种模式下开发出来的程序可以实质性地减少开发时间,这一点也在最近由NVIDIA和IBM联合举办的网络研讨会上所指出。下图展示了在一个基于Pascal的Tesla P100 GPU上运行SPEC ACCEL 1.0 OpenACC基准的性能,编译时使用CUDA Unified Memory与用户指定和优化的数据迁移加以对照。在POWER8CPU和Tesla P100 GPU之间配置了NVLink的Minsky系统中,采用CUDA Unified Memory进行编译的15 SPEC ACCEL基准版本的平均数值处于所有可分配数据用户引导数据迁移版本的10%:

其中的三个基准(354.cg、357.csp和370.bt)只使用静态数据,因此CUDA Unified Memory功能并不适用。其它12个标准全部都充分利用了可分配数据。

“诸如OpenMP和OpenACC这样更加方便的编程方法对GPU加速系统的广泛应用至关重要,”IBM高性能计算和数据分析事业部副总裁Sumit Gupta说道,“新的PGI编译器充分利用POWER8 CPU和NVIDIA Tesla P100 GPU加速器之间的高速NVIDIA NVLink连接,结合页面迁移引擎,可以更加轻松地加速并增强高性能计算和数据分析工作负载的性能。”

更多信息和新的PGI编译器请访问以下网址获取和下载: www.pgroup.com/openpower