意法半导体全资子公司、高性能计算(HPC)编译器供应商Portland Group宣布一项产品开发计划:将其具有OpenACC功能的PGI Accelerator编译器技术延伸至基于英特尔集成众核(MIC)架构的Intel Xeon Phi协处理器。目前科学家和工程师采用PGI Accelerator Fortran和C语言编译器,以充分发挥英伟达具有CUDA功能的GPU的巨大吞吐量优势。不久后,使用PGI Accelerator编译器的软件开发人员,继续使用现有的代码库,只需略加修改构建脚本,即可为Intel Xeon Phi 协处理器编程。
Portland Group总监Douglas Miles表示:“直到现在,行业信息技术主管、政府实验室和大学实验室的主管在评估加速器技术时都遇到了进退两难的情况。我们等待哪一种技术胜出吗?我们选择哪一个或哪些编程模型?我们如何留住开发人员继续使用这些编程模型?我们的应用能够经受未来的考验并在不同的主CPU和协处理器之间跨平台移植吗?PGI Accelerator编译器将让开发人员使用OpenACC标准指令为Xeon Phi 协处理器编程,OpenACC指令完全兼容目前多数主要的HPC中心和站点正在进行的加速器应用开发项目。”
2009年中期首次发布的PGI Accelerator编译器提供一个高级协处理器编程模型,目标用户群锁定科学家、工程师等领域非全职编程员的专家学者。PGI Accelerator Fortran 2003、C和C++编译器让程序员实现通过为现有标准程序中添加被其它编译器视为注释的可移植指令,选用适当的编译器选项重新编译程序,将应用代码中计算密集部分转交协处理器执行运算。2012年,新版PGI Accelerator 编译器可支持事实上的OpenACC 标准指令。
采用OpenACC指令让协处理器编程具有以下几大优点:
高级 ? 无需OpenCL、CUDA 或其它低级编程模型使用经验,适合各领域的技术专家
高效 ? 设计精良的算法,使用低级编程模型和使用指令式编程模型的运算效果相同。
统一的源代码库 ? 协处理器无需单独源代码,即使是多核CPU,使用PGI或其它任何一种标准编译器也只编译同一程序。
性能移植 ? 支持 多个厂商开发的GPU 加速器和协处理器
累加 – 根据时间安排,开发人员可以只移植和优调部分应用代码。无需全盘重写
快捷 ? 多数开发人员无需花费太多的功夫即可见到成效
橡树岭国家实验室Titan项目负责人Buddy Bland表示:“PGI OpenACC将让程序员能够开发可移植的应用程序,最大限度提升Titan的CPU/加速器混合架构的性能和功效优势,我们非常高兴见到PGI 正在增加对英特尔Xeon Phi的支持功能,为Titan项目开发的加速应用软件可快速方便地移植至搭载英特尔协处理器的HPC系统。”
桑迪亚国家实验室 Simon Hammond表示:“作为我们目前正在进行的未来计算架构评估活动的组成部分,桑迪亚国家实验室积极参与了不同厂商提供的解决方案的评估工作,其中包括英特尔、英伟达、AMD、ARM 和 IBM。我们已开始使用PGI编译器在英伟达加速器上进行探索性代码开发。PGI的OpenACC扩展指令集支持英特尔的Xeon Phi处理器,让我们能够在各种加速器硬件上使用一个开放的标准化编程模型。”
国家再生能源实验室HPC科学家John Michalakes表示:“自2008年至今,我断断续续地与PGI进行合作研发活动,探索能够同时适用现在的多核和未来的加速计算节点的编程模型,PGI决心创造一个能够跨平台移植功能和性能的编程模型和编译器的承诺是无庸置疑的,我期待在Xeon Phi上使用他们的编译器。”
位于博尔德的NOAA地球系统研究实验室全球系统部Tom Henderson表示:“我们正在运用英伟达GPU和英特尔Xeon Phi协处理器研究FIM和NIM 数字天气预报模型,我们已在英伟达项目中使用PGI编译器,看到PGI将在两种加速器上支持统一的OpenACC标准编程模型让我们非常高兴。我们期待PGI OpenACC提供一个性能可移植的解决方案,实现在GPU、CPU和Xeon Phi上运行只需维护一个源代码。”
在2013年上半年即将发布的PGI编译器中,PGI将增加在Xeon Phi协处理器上对OpenACC标准的测试性支持功能。目前订阅PGI有偿服务的PGI Accelerator授权用户将免费获得支持功能。内置OpenACC指令的PGI Accelerator Fortran、C 和 C++编译器目前在Linux、OS X和 Windows平台上支持x64+NVIDIA系统;PGI编译器支持所有基于英特尔和AMD x64处理器并内置具有CUDA功能的英伟达GPU的计算系统。
《电子设计技术》网站版权所有,谢绝转载
阅读全文,请先