滚动新闻:
首页 > 客户服务 > 技术支持

【CUDA】OpenACC 问与答

  问:OpenACC的API是什么?

  答: OpenACC API允许并行编程人员提供简单的提示——被称为“指令”给编译器,识别代码要加速的哪些区域,而不需要程序员修改底层代码。通过将并行部分告诉给编译器,指令能让编译器执行具体的加速器计算映射工作。

  问:OpenACC API是如何工作的?

  答:在使用OpenACC API的程序里,加速器和主机内存及数据缓存之间数据的移动是由编译器根据程序中OpenACC指令的提示进行隐性管理。OpenACC指令也允许程序员提供指示将循环映射到一个加速器上和类似性能相关的细节程序里。

  问:OpenACC的API主要解决哪些问题?

  答:它提供了一个简单的加速器编程模型,有或者没有加速器都可以工作。另外,它定义了一套统一的加速器编程指令,可以方便地用C、C + +或Fortran语言编程。

  问:OpenACC API的好处是什么?

  答:1.它为开发者提供了一个容易的开发捷径,从而可以从强大的多核处理器如GPU中得到好处;2.它允许加速和非加速器系统启用通用的代码库。非加速器系统启用OpenACC指令可以忽略不计;3.它可以允许在不同类型和品牌的加速器上执行(包括CPU和GPU)。4.它还提供了一个增量路径用于将现有应用转移到加速器上,这样相较于其他方法更能减少对现有代码的打扰;5.它允许编程工具利用他们自己独特的扩展来支持通用加速器标准。

  问:OpenACC的API对哪些人来说会很重要的呢?

  答:以下几类人:

  1. 对加速器感兴趣,希望能从简单的编程模型中收益的科学家们。

  2. 在尚未进行并行化的传统应用有重大投资的商业单位。

  3. 希望创造和重复利用代码,且不需要依赖个别硬件以实现代码长寿的开发人员

  问:目前有哪些供应商宣布支持OpenACC API?

  答:最初的组织成员包括CARPS,Cray公司,NVIDIA和PGI。当更多的供应商推出支持支持统一规范的产品,这将有助于加快加速器指令为基础的编程模型的采用率。

  问:OpenACC规范是基于什么基础?

  答:它最初由PGI,Cray公司,NVIDIA开发,并且得到CAPS的支持,很大程度上是基于PGI加速器编程模型的基础上。这四家公司打算与OpenMP语言委员会工作,合并OpenACC规范和建立一个通用规范,以延伸OpenMP对加速器的支持。

  问:OpenACC API和目前发布的基于指令的加速器编译器的区别是什么?

  答:发布者们是能够定义一个共同的语法和一个通用功能子集,以合并到他们现有的加速器产品。个别编译器产品可能在规范之上增加一些功能。

  问:OpenACC API和OpenMP API的关系怎样?

  答:今天OpenMP不支持加速器。OpenACC API的创造者们同时也是OpenMP工作组成员。这些成员打算将OpenACC的API与OpenMP规范合并以建立一个通用的规范,可以让OpenMP在未来的版本里支持加速器。另外,OpenACC API被定义成可以与OpenMP进行互操作,一些实施者已经支持或打算支持OpenMP并行区域里的OpenACC加速器区。这样做的目的是从 OpenACC API的执行中吸收经验教训,以完善和强大OpenMP的异构计算标准,其中包括高层次的高效加速器编程所需的功能。

  问:OpenACC的API是只用于HPC?

  答:OpenACC的API是用于简化加速器编程,已经超越高性能计算蔓延到石油和天然气、金融和制造领域。

  问:OpenACC API能运行到AMD的GPU上吗?

  答:可以的,没有理由不可能。

  问:请问OpenACC的API是运行在OpenCL的上层吗?

  答:可以

  问:执行OpenACC API的编译器什么时候发布

  答: 我们预期的首次公开可用的产品可能会在2012年上半年出货

  问:OpenACC API支持,c + +和Fortran语言吗?

  答:是。OpenACC支持目前合作伙伴的C,C + +和Fortran编译器

  问:·哪些编译器将支持的OpenACC API?

  答:1. 支持NVIDIA GPU的PGI C / c + + / Fortran加速器编译器

  2. Cray CCE编译器

  3. CARPS的HMPP

  4. 其它