找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 420|回复: 0

[资讯] PGI OpenACC编译器2018版本新功能一览

[复制链接]
发表于 2018-2-23 12:53:55 | 显示全部楼层 |阅读模式
ESC4000G3
     

                                 

利用Tesla V100来加速您的高性能应用
PGI OpenACC和CUDA Fortran现在支持在Tesla Volta GPU卡上运行CUDA9.1。Tesla V100提供了更多的内存贷款和更多的流媒体多处理器,还有一下呆NVLINk和新的微架构特性。这些特性可以提供更高的性能和可编程性。对于OpenACC和CUDA Fortran程序员来说,Tesla V100提供了革命性的硬件支持和性能,比如在X86-64和OpenPower 处理器平台上支持CUDA同一内存特性。有了PGI2018编译器,你可以获得上佳计算性能——更好的CPU性能加上更全面的GPU支持。

                               
登录/注册后可看大图
支持最新的cpu
多核CPU性能仍然是PGI编译器的主要优势之一,它现在支持包括Intel Skylake、IBM POWER9和AMD Zen在内的最新一代HPC CPU。PGI Fortran 2003, C11和c++ 14编译器提供了最先进的SIMD矢量化,并受益于Linux x86、Linux OpenPOWER和macOS上的新优化的单和双精度数值内部函数。有关PGI 2018性能的基准部分,请参阅各种HPC行业标准基准测试结果。

                               
登录/注册后可看大图
全面支持OpenACC2.6
现在所有的PGI编译器现在都支持Tesla gpu和多核cpu的最新OpenACC特性。新的OpenACC 2.6特性包括手动的深度复制指令、串行计算构造、在host_data构造中的if_present子句、no_create数据子句、attach/detach子句、acc_get_property API例程,以及对Fortran可选参数的改进支持。添加或增强的其他OpenACC特性包括缓存指令改进和Fortran模块中命名常量数组的支持。
支持CUDA统一内存的OpenACC
PGI编译器利用Pascal和Volta GPU硬件特性NVLink和CUDA统一内存来简化GPU加速平台x86-64和基于OpenPOWER处理器的服务器上的OpenACC编程。当在CUDA统一内存中放置OpenACC allocatable数据时,不需要显式数据移动或数据指令。这简化了广泛使用allocatable数据的应用程序的GPU加速,让你专注在算法的并行化和可伸缩性。

                               
登录/注册后可看大图
支持avx – 512
与上一代AVX2 SIMD指令相比,最新一代Skylake CPU上可用的Intel AVX-512 CPU指令能使浮点运算次数增加一倍。在512位宽的情况下,AVX-512可以同时增加寄存器的宽度和寄存器的总数,并且可以帮助提高HPC应用程序的性能。

                               
登录/注册后可看大图
新的c++ 17特性
在发布的2018版本里,PGI c++编译器在编译c++17或- std=c++17时引入了对c++17标准的部分支持。支持的c++ 17核心语言特性可以在所有支持的macOS版本和支持GCC 5及以上版本的Linux系统上使用。新的c++语言特性包括编译时条件语句(if)、结构化绑定、带有初始化器的选择语句、折叠表达式、内联变量、constexpr lambdas等。
PGI针对Tesla和多核处理器的Unified Binary功能
使用OpenACC构建应用程序可以在GPU上加速,也可以在一个多核服务器上让所有的内核并行处理,即当您在GPU的系统上运行应用程序时,OpenACC区域将卸载并在GPU上执行。当同一个应用程序在没有gpu的系统上运行时,OpenACC区域将在系统的所有CPU内核中并行执行。如果您开发商业或生产应用程序,现在您可以使用OpenACC加速您的代码,并在任何系统上部署单个二进制文件,无论是否使用gpu。

                               
登录/注册后可看大图
OpenACC区域中使用C++14 Lambdas with Capture
c++ lambda表达式提供了一种方便的方法,可以在调用或传递参数的位置定义匿名函数对象。自动类型说明符可以应用于lambda参数,以创建一个多态的lambda表达式。使用PGI编译器,您可以在您的c++程序中的OpenACC计算区域使用lambdas。使用OpenACC的lambdas有多种原因。一个例子是将代码生成定制到不同的编程模型或平台。c++ 14为越来越多的lambda用例打开了大门,特别是对于多态的lambdas,所有这些功能现在都可以在OpenACC程序中使用了。

                               
登录/注册后可看大图
LLVM / x86 - 64代码生成器
2018年发行版包括一个用于x86-64LLVM代码生成器,完全集成了PGI Fortran、C和c++编译器,包括对OpenACC和CUDA Fortran的支持。这个初始版本引入了对OpenMP 4.5特性的支持,目标是多核x86-64 cpu,并在许多c++应用程序上提供性能改进。作为PGI Linux安装包的一部分,LLVM组件与默认的PGI编译器一起安装,并使用一个简单的命令行选项进行调用。

                               
登录/注册后可看大图
增强分析的特性
新的CPU Detail View可以显示CPU上每个线程所花费的一个断点时间。 Three call tree选项允许您基于caller、callee或者每文件和行号来分析可以查看所有线程在一起或单独的时间,查看快速排序事件最小或最大时间等等。其它新特性包括用一个选项来调整程序计数器采样频率,以及可以显示NVLink拓扑的NVlink版本等。


注意事项:
1.PGI 2018包括更新的FlexNet许可证管理软件,以解决安全漏洞。任何以前的PGI版本的用户都必须更新他们的FlexNet许可证守护进程,以支持PGI 18.1和后续版本。
2.我们鼓励新用户第一次尝试PGI社区版,目前版本是17.10,这里可以免费下载(社区版本和专业版本的区别)。如果想尝试PGI 18.1的新功能,请联系我们获得临时下载链接。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表