结婚六十年是什么婚| 突然耳鸣是什么原因| 咽喉疼痛吃什么药好| 璠字取名寓意什么| 小孩荨麻疹吃什么药| 肠炎吃什么药最好| 什么孩子命里有文曲星| 女性感染梅毒有什么症状| 尿频是什么原因| 梦见掉头发是什么意思| 守旧是什么意思| 6.3是什么星座| 什么是舍利| ECG是什么| 什么是射精| 为什么牛肝便宜没人吃| 肝脓肿是什么原因引起的| 什么花代表永恒的爱| 特殊是什么意思| 西施姓什么| 打蛇打七寸是什么意思| 血痰是什么原因| o型血为什么招蚊子| 喉咙干痒是什么原因| 基围虾不能和什么一起吃| 出入是什么意思| 屁股后面骨头疼是什么原因| 打嗝不停是什么病前兆| 荷花又什么又什么| 为什么不嫁丧妻之男| 扁平足是什么样子图片| 湿气严重吃什么药好得快| 月经淋漓不尽是什么原因| 什么动物倒着走| 血小板减少是什么原因| 过敏性鼻炎用什么药效果好| 什么时机塞给医生红包| 银壶一般什么价位| 趋利避害是什么意思| lpp什么意思| 二月十八是什么星座| 什么梨| 擅长是什么意思| 什么是红斑狼疮病| 天庭是什么意思| 苟且是什么意思| 硫酸镁注射有什么作用| 新诺明又叫什么| 包饺子用什么面粉| 高职是什么学历| 减肥可以吃什么| 除湿气用什么药| 着凉嗓子疼吃什么药| 尿道刺痛吃什么药| 风疹病毒抗体偏高是什么意思| 叹服是什么意思| 什么水果含叶酸最多| 八方来财是什么生肖| 吃什么对肠道好| 普罗帕酮又叫什么| 印迹杂交技术检查什么| pep是什么意思| 贷款是什么意思| 脸颊红是什么原因| 印度尼西亚是什么人种| 消化内科主要看什么病| 幻视是什么意思| 云南在古代叫什么| 身体缺硒有什么症状| 鸡胸是什么病| 妯娌关系是什么意思| 黑蚂蚁泡酒有什么功效| 翊什么意思| 2027是什么年| 2月25号是什么星座| 脑管瘤的症状是什么| 闰月是什么意思| 子宫前倾是什么意思| 梦见买车是什么意思| 实名认证是什么意思| pc是什么| 吃南瓜子有什么好处| 长方脸适合什么样的发型| 许莫氏结节是什么| 什么是血脂高| 肺心病是什么病| 春宵一刻值千金是什么意思| 3月15是什么星座| ct什么意思| 7月6号什么星座| 电脑长期不关机有什么影响| 大便失禁是什么原因| 海明威为什么自杀| 夜长梦多是什么意思| elsevier是什么期刊| 艾灸是什么东西| b3维生素又叫什么| crp高是什么意思| 肠道紊乱有什么症状| 阿奇霉素治疗什么| 儿童红眼病用什么眼药水| 艾地苯醌片治什么病| 舌头烧灼感是什么原因| 胃炎应该吃什么药| 结婚纪念日送什么礼物| 芈月和秦始皇什么关系| 六月初四是什么星座| 炸酥肉用什么粉| 鮰鱼是什么鱼| 得艾滋病有什么症状| 梦见长白头发是什么意思| 城市户口和农村户口有什么区别| 白细胞高是什么原因| 忤逆是什么意思| 低压太低是什么原因| 老年人腿无力是什么原因导致的| 舅舅的孩子叫什么| 头晕用什么药好| cps是什么| 血红蛋白高是什么意思| 丝瓜不能和什么食物一起吃| 胰岛素是什么器官分泌的| 省政协委员是什么级别| 绿得什么| 肺部有结节要注意什么| 正畸和矫正有什么区别| 轩字属于五行属什么| 采字五行属什么| 回民不能吃什么| pet-ct检查主要检查什么| 调戏是什么意思| 蛔虫和蛲虫有什么区别| 皱褶什么意思| rh阳性是什么意思| coolmax是什么面料| 阁老是什么意思| 卡蒂罗属于什么档次| 9.7是什么星座| 粿条是什么做的| 龙井茶什么季节喝最好| 女性肝阳上亢吃什么药| 吃什么能降低尿蛋白| 阴沉木是什么木头| 雪青色是什么颜色| 酒石酸美托洛尔片治什么病| 大芒果是什么品种| 底线是什么意思| 什么是寓言故事| 非私营单位是什么| 糖尿病人适合喝什么茶| 大手牵小手是什么菜| 图谋不轨什么意思| 指甲的月牙代表什么| hla一b27阳性是什么意思| 咸鸭蛋为什么会出油| 做梦梦到蛇是什么意思| 五个月宝宝吃什么辅食最好| 前列腺增生吃什么食物好| 七九年属什么| 井里面一个点念什么| 玫瑰糠疹是什么原因引起的| 骨穿是检查什么病| 奥氮平片是什么药| 孕晚期高血压对胎儿有什么影响| 红白相间是什么意思| 西辽国在现今什么地方| 吃什么补充酪氨酸酶| 血止不住是什么原因| 斜率是什么| 性功能障碍挂什么科| 筑基期后面是什么| 二尾子什么意思| 为什么支气管炎咳嗽长期不好| 胆汁反流是什么症状| 看淋巴挂什么科室| 梦见偷桃子是什么意思| 6969是什么意思| 雷锋原名叫什么| 结婚16年是什么婚| 蟾蜍是什么| 痛风性关节炎吃什么药| 治霉菌性阴炎用什么药好得快| 日行一善下一句是什么| 懵圈是什么意思| 骨质增生什么意思| 大疱病是什么病| 桃李满天下是什么意思| 甲胎蛋白高是什么原因| ifound是什么牌子| 空气炸锅能做什么| 塬字五行属什么| 宝宝便秘吃什么| 女宝胶囊的作用和功效是什么| 马齿苋能治什么病| 猫能吃什么人吃的东西| 笑话是什么意思| 肚子疼吃什么药管用| 大禹姓什么| 肌张力高有什么表现| 浑圆是什么意思| b站是什么| 射精太快吃什么药| 容易受惊吓是什么原因| 跑男什么时候播出| 回族为什么姓马的多| hpv疫苗是什么| 甲状腺毒症是什么意思| 补血吃什么食物| 飞机为什么不能说一路顺风| 酸梅汤什么人不能喝| mps是什么意思| 清炖牛肉放什么调料| 承五行属什么| 五行木生什么| 什么是塔罗牌| 黄色配什么颜色最搭| 竹升面是什么面| 宝宝咳嗽流鼻涕吃什么药| ntd是什么意思| 眼睛充血是什么原因引起的| 孕早期胎停有什么症状或征兆吗| 什么叫物质女人| 烛光晚餐是什么意思| 眼底充血是什么原因| 女人梦见狗是什么预兆| 丸美属于什么档次| 青霉素过敏吃什么消炎药| 冷落是什么意思| 梦见死人笑什么预兆| 梦见自己掉牙齿是什么征兆| 副部长是什么级别| 高铁特等座有什么待遇| 女人吃维生素b有什么好处| 腰椎间盘突出吃什么药好| 田七与三七有什么区别| 肩膀疼是什么原因引起的| 披什么散什么| 睡觉翻白眼是什么原因| 西药是用什么材料做的| 孤帆远影碧空尽的尽是什么意思| 阴虚火旺吃什么好| 孺子可教什么意思| 不宁腿综合症吃什么药| 复方乙酰水杨酸片是什么药| 回民为什么不吃猪| 调戏是什么意思| 荨麻疹是什么样的| 猪油不凝固是什么原因| 电焊打眼最有效最快的方法是什么| 怀孕周期是从什么时候开始算的| 淀粉酶偏高是什么原因| 孕妇尿路感染吃什么药| 左心室强光点是什么意思| 浅表性胃炎吃什么药好使| 看颈椎病挂什么科| 有什么无什么的成语| naps是什么意思| 年轮稀疏的一面是什么方向| 感冒是挂什么科| 2009年是什么生肖年| 什么叫糖化血红蛋白| 夏天喝什么解渴| 便秘屁多是什么原因| 梦到门坏了是什么意思| 百度

中华网论坛停止运营公告

百度 全面从严治党八大着力点第一,把党的政治建设摆在首位。

OpenACC (for open accelerators) is a programming standard for parallel computing developed by Cray, CAPS, Nvidia and PGI. The standard is designed to simplify parallel programming of heterogeneous CPU/GPU systems.[1]

OpenACC
Developer(s)The OpenACC Organization
Stable release
3.3 / November?2022; 2?years ago?(2022-11)
Written inC, C++, and Fortran
Operating systemCross-platform
PlatformCross-platform
TypeAPI
Websitewww.openacc.org

As in OpenMP, the programmer can annotate C, C++ and Fortran source code to identify the areas that should be accelerated using compiler directives and additional functions.[2] Like OpenMP 4.0 and newer, OpenACC can target both the CPU and GPU architectures and launch computational code on them.

OpenACC members have worked as members of the OpenMP standard group to merge into OpenMP specification to create a common specification which extends OpenMP to support accelerators in a future release of OpenMP.[3][4] These efforts resulted in a technical report[5] for comment and discussion timed to include the annual Supercomputing Conference (November 2012, Salt Lake City) and to address non-Nvidia accelerator support with input from hardware vendors who participate in OpenMP.[6]

At ISC’12 OpenACC was demonstrated to work on Nvidia, AMD and Intel accelerators, without performance data.[7]

On November 12, 2012, at the SC12 conference, a draft of the OpenACC version 2.0 specification was presented.[8] New suggested capabilities include new controls over data movement (such as better handling of unstructured data and improvements in support for non-contiguous memory), and support for explicit function calls and separate compilation (allowing the creation and reuse of libraries of accelerated code). OpenACC 2.0 was officially released in June 2013.[9]

Version 2.5 of the specification was released in October 2015,[10] while version 2.6 was released in November 2017.[11] Subsequently, version 2.7 was released in November 2018.[12]

The latest version is version 3.3, which was released in November 2022.[13]

Compiler support

edit

Support of OpenACC is available in commercial compilers from PGI (from version 12.6), and (for Cray hardware only) Cray.[7][14]

OpenUH[15] is an Open64 based open source OpenACC compiler supporting C and FORTRAN, developed by HPCTools group from University of Houston.

OpenARC[16] is an open source C compiler developed at Oak Ridge National Laboratory to support all features in the OpenACC 1.0 specification. An experimental[17] open source compiler, accULL, is developed by the University of La Laguna (C language only).[18]

Omni Compiler[19][20] is an open source compiler developed at HPCS Laboratory of University of Tsukuba and Programming Environment Research Team of RIKEN Center for Computational Science, Japan, supported OpenACC, XcalableMP?[ja] and XcalableACC?[ja] combining XcalableMP and OpenACC.

IPMACC[21] is an open source C compiler developed by University of Victoria that translates OpenACC to CUDA, OpenCL, and ISPC. Currently, only following directives are supported: data, kernels, loop, and cache.

GCC support for OpenACC was slow in coming.[22] A GPU-targeting implementation from Samsung was announced in September 2013; this translated OpenACC 1.1-annotated code to OpenCL.[17] The announcement of a "real" implementation followed two months later, this time from NVIDIA and based on OpenACC 2.0.[23] This sparked some controversy, as the implementation would only target NVIDIA's own PTX assembly language, for which no open source assembler or runtime was available.[24][25] Experimental support for OpenACC/PTX did end up in GCC as of version 5.1. GCC6 and GCC7 release series include a much improved implementation of the OpenACC 2.0a specification.[26][27] GCC 9.1 offers nearly complete OpenACC 2.5 support.[28]

Usage

edit

In a way similar to OpenMP 3.x on homogeneous system or the earlier OpenHMPP, the primary mode of programming in OpenACC is directives.[29] The specifications also include a runtime library defining several support functions. To exploit them, user should include "openacc.h" in C or "openacc_lib.h" in Fortran;[30] and then call acc_init() function.

Directives

edit

OpenACC defines an extensive list of pragmas (directives),[31] for example:

#pragma acc parallel
#pragma acc kernels

Both are used to define parallel computation kernels to be executed on the accelerator, using distinct semantics[32][33]

#pragma acc data

Is the main directive to define and copy data to and from the accelerator.

#pragma acc loop

Is used to define the type of parallelism in a parallel or kernels region.

#pragma acc cache
#pragma acc update
#pragma acc declare
#pragma acc wait

Runtime API

edit

There are some runtime API functions defined too: acc_get_num_devices(), acc_set_device_type(), acc_get_device_type(), acc_set_device_num(), acc_get_device_num(), acc_async_test(), acc_async_test_all(), acc_async_wait(), acc_async_wait_all(), acc_init(), acc_shutdown(), acc_on_device(), acc_malloc(), acc_free().

OpenACC generally takes care of work organisation for the target device however this can be overridden through the use of gangs and workers. A gang consists of workers and operates over a number of processing elements (as with a workgroup in OpenCL).

See also

edit

References

edit
  1. ^ "Nvidia, Cray, PGI, and CAPS launch 'OpenACC' programming standard for parallel computing". The Inquirer. 4 November 2011. Archived from the original on November 17, 2011.
  2. ^ "OpenACC standard version 2.5" (PDF). OpenACC.org. Retrieved 2 June 2017.
  3. ^ "How does the OpenACC API relate to the OpenMP API?". OpenACC.org. Retrieved 14 January 2014.
  4. ^ "How did the OpenACC specifications originate?". OpenACC.org. Retrieved 14 January 2014.
  5. ^ "The OpenMP Consortium Releases First Technical Report". OpenMP.org. 5 November 2012. Retrieved 14 January 2014.
  6. ^ "OpenMP at SC12". OpenMP.org. 29 August 2012. Retrieved 14 January 2014.
  7. ^ a b "OpenACC Group Reports Expanding Support for Accelerator Programming Standard". HPCwire. 20 June 2012. Archived from the original on 23 June 2012. Retrieved 14 January 2014.
  8. ^ "OpenACC Version 2.0 Posted for Comment". OpenACC.org. 12 November 2012. Retrieved 14 January 2014.
  9. ^ "OpenACC 2.0 Spec | www.openacc.org". www.openacc.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  10. ^ "OpenACC Standards Group Announces Release of the 2.5 Specification; Member Vendors Add Support for ARM & x86 as Parallel Devices | www.openacc.org". www.openacc.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  11. ^ "What's new in OpenACC 2.6? | OpenACC". www.openacc.org. Retrieved 2025-08-14.
  12. ^ "What's new in OpenACC 2.7! | OpenACC". www.openacc.org. Retrieved 2025-08-14.
  13. ^ "The OpenACC? Application Programming Interface" (PDF). OpenACC. November 2022. Archived (PDF) from the original on January 25, 2023. Retrieved February 24, 2025.
  14. ^ "OpenACC Standard to Help Developers to Take Advantage of GPU Compute Accelerators". Xbit laboratories. 16 November 2011. Archived from the original on 16 January 2014. Retrieved 14 January 2014.
  15. ^ "OpenUH Compiler". Archived from the original on 25 January 2014. Retrieved 4 March 2014.
  16. ^ "OpenARC Compiler". Archived from the original on 4 November 2014. Retrieved 4 November 2014.
  17. ^ a b Larabel, Michael (30 September 2013). "GCC Support Published For OpenACC On The GPU". Phoronix.
  18. ^ "accULL The OpenACC research implementation". Retrieved 14 January 2014.
  19. ^ "Omni Compiler". omni-compiler.org. Retrieved 2025-08-14.
  20. ^ Omni Compiler for C and Fortran programs with XcalableMP and OpenACC directives: omni-compiler/omni-compiler, omni-compiler, 2025-08-14, retrieved 2025-08-14
  21. ^ "IPMACC Compiler". GitHub. Retrieved 31 January 2017.
  22. ^ Larabel, Michael (4 December 2012). "OpenACC Still Not Loved By Open Compilers". Phoronix.
  23. ^ Larabel, Michael (14 November 2013). "OpenACC 2.0 With GPU Support Coming To GCC". Phoronix.
  24. ^ Larabel, Michael (15 November 2013). "NVIDIA, Mentor Graphics May Harm GCC". Phoronix.
  25. ^ Larabel, Michael (21 November 2013). "In-Fighting Continues Over OpenACC In GCC". Phoronix.
  26. ^ "OpenACC - GCC Wiki".
  27. ^ Schwinge, Thomas (15 January 2015). "Merge current set of OpenACC changes from gomp-4_0-branch". gcc (Mailing list). Retrieved 15 January 2015 – via gcc.gnu.org.
  28. ^ Jelinek, Jakub (3 May 2019). "GCC 9.1 Released". LWN.net.
  29. ^ "Easy GPU Parallelism with OpenACC". Dr.Dobb's. 11 June 2012. Retrieved 14 January 2014.
  30. ^ "OpenACC API QuickReference Card, version 1.0" (PDF). NVidia. November 2011. Retrieved 14 January 2014.
  31. ^ "OpenACC standard version 2.0" (PDF). OpenACC.org. Retrieved 14 January 2014.
  32. ^ "OpenACC Kernels and Parallel Constructs". PGI insider. August 2012. Retrieved 14 January 2014.
  33. ^ "OpenACC parallel section VS kernels". CAPS entreprise Knowledge Base. 3 January 2013. Archived from the original on 16 January 2014. Retrieved 14 January 2014.
edit
尿比重高是什么原因 什么是脑梗 过剩是什么意思 吃了发芽的土豆会有什么症状 什么一刻值千金花有清香月有阴
降三高喝什么茶最好 皮肤疖是什么病 社保基金是什么 什么眼霜去眼袋效果好 依从性是什么意思
脸上痣多是什么原因 卡卡西是什么意思 放屁多是什么原因 qc是什么 擦汗的表情是什么意思
什么移动卡流量多 喜欢白色的人是什么性格 夯实是什么意思 血管紧张素是什么意思 吃猪肝补什么
藿香正气水什么牌子的好hcv8jop8ns1r.cn 结婚20年是什么婚姻hcv9jop4ns2r.cn 马华念什么字hcv8jop8ns1r.cn 睡意是什么意思hcv9jop1ns1r.cn 葡萄套袋前打什么药hcv7jop9ns6r.cn
cc是什么hcv8jop1ns7r.cn 儿童补锌吃什么hcv8jop9ns7r.cn no2是什么气体hcv9jop6ns5r.cn 掉牙齿是什么征兆hcv9jop5ns9r.cn plcc是什么意思xianpinbao.com
宝宝缺钙吃什么补得快hcv8jop7ns3r.cn 三伏天吃什么好hcv7jop7ns3r.cn 庚字五行属什么hcv8jop6ns7r.cn 载脂蛋白b偏低是什么意思hcv8jop0ns8r.cn 眼睛有什么颜色hcv8jop1ns5r.cn
低热是什么症状hcv8jop1ns0r.cn 鸡炖什么好吃又有营养hcv7jop6ns8r.cn 急性肠胃炎可以吃什么水果hcv8jop2ns2r.cn 膀胱充盈差是什么意思hcv7jop9ns6r.cn 2018年生肖属什么wmyky.com
百度