编辑“︁
OpenCL
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 历史 == OpenCL最初由[[苹果公司]]开发,拥有其商标权,并在与[[AMD]],[[IBM]],[[Intel]]和[[NVIDIA]]技术团队的合作之下初步完善。随后,苹果将这一草案提交至[[Khronos Group]]。2008年6月16日,Khronos的通用计算工作小组成立<ref>{{cite press release |url=http://www.khronos.org/news/press/releases/khronos_launches_heterogeneous_computing_initiative/ |title=Khronos Launches Heterogeneous Computing Initiative |accessdate=2008-06-18 |publisher=Khronos Group |date=2008-06-16 |deadurl=yes |archiveurl=https://web.archive.org/web/20080620123431/http://www.khronos.org/news/press/releases/khronos_launches_heterogeneous_computing_initiative/ |archivedate=2008-06-20 }}</ref>。5个月后的2008年11月18日,该工作组完成了OpenCL 1.0规范的技术细节<ref name=macWorld>{{cite web | url=http://www.macworld.com/article/136921/2008/11/opencl.html?lsrc=top_2 | title=OpenCL gets touted in Texas | publisher=MacWorld | date=2008-11-20 | accessdate=2009-06-12 | archive-date=2009-02-18 | archive-url=https://web.archive.org/web/20090218165557/http://www.macworld.com/article/136921/2008/11/opencl.html?lsrc=top_2 | dead-url=no }}</ref>。该技术规范在由Khronos成员进行审查之后,于2008年12月8日公开发表<ref name=khronosGroup>{{cite press release | url=http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/ | title=The Khronos Group Releases OpenCL 1.0 Specification | publisher=Khronos Group | date=2008-12-08 | accessdate=2009-06-12 | deadurl=yes | archiveurl=https://web.archive.org/web/20100713014204/http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/ | archivedate=2010-07-13 }}</ref>。 2010年6月14日,OpenCL 1.1发布<ref>{{cite press release | url=http://www.khronos.org/news/press/releases/khronos-group-releases-opencl-1-1-parallel-computing-standard/ | title=Khronos Drives Momentum of Parallel Computing Standard with Release of OpenCL 1.1 Specification | publisher=Khronos Group | date=2010-06-14 | accessdate=2010-10-13 | deadurl=yes | archiveurl=https://web.archive.org/web/20100923101844/http://www.khronos.org/news/press/releases/khronos-group-releases-opencl-1-1-parallel-computing-standard | archivedate=2010-09-23 }}</ref>。2011年11月15日,OpenCL 1.2发布<ref>{{cite web |url=https://www.khronos.org/news/press/khronos-releases-opencl-1.2-specification |title=Khronos Releases OpenCL 1.2 Specification |publisher=Khronos Group |date=November 15, 2011 |access-date=June 23, 2015 |archive-date=2020-12-02 |archive-url=https://web.archive.org/web/20201202103240/https://www.khronos.org/news/press/khronos-releases-opencl-1.2-specification |dead-url=no }}</ref>。2013年11月18日,OpenCL 2.0发布<ref>{{cite web |url=https://www.khronos.org/news/press/khronos-finalizes-opencl-2.0-specification-for-heterogeneous-computing |title=Khronos Finalizes OpenCL 2.0 Specification for Heterogeneous Computing |date=November 18, 2013 |access-date=February 10, 2014 |publisher=Khronos Group |archive-date=2020-11-11 |archive-url=https://web.archive.org/web/20201111201527/https://www.khronos.org/news/press/khronos-finalizes-opencl-2.0-specification-for-heterogeneous-computing |dead-url=no }}</ref>。2015年11月16日,OpenCL 2.1发布<ref>{{cite web |title=Khronos Releases OpenCL 2.1 and SPIR-V 1.0 Specifications for Heterogeneous Parallel Programming |url=https://www.khronos.org/news/press/khronos-releases-opencl-2.1-and-spir-v-1.0-specifications-for-heterogeneous |publisher=Khronos Group |access-date=November 16, 2015 |date=November 16, 2015 |archive-date=2020-11-08 |archive-url=https://web.archive.org/web/20201108122543/https://www.khronos.org/news/press/khronos-releases-opencl-2.1-and-spir-v-1.0-specifications-for-heterogeneous |dead-url=no }}</ref>。2017年5月16日,OpenCL 2.2发布<ref>{{cite web |url=https://www.khronos.org/news/press/khronos-releases-opencl-2.2-with-spir-v-1.2 |title=Khronos Releases OpenCL 2.2 With SPIR-V 1.2 |date=May 16, 2017 |publisher=[[Khronos Group]] |access-date=2024-10-13 |archive-date=2021-01-18 |archive-url=https://web.archive.org/web/20210118110308/https://www.khronos.org/news/press/khronos-releases-opencl-2.2-with-spir-v-1.2 |dead-url=no }}</ref>。 === 路线图 === 在2017年5月发行OpenCL 2.2之时,Khronos Group宣布OpenCL将尽可能的汇合于[[Vulkan]],以确使OpenCL软件在这两种API上灵活部署<ref>{{Cite web|url=https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan|title=Breaking: OpenCL Merging Roadmap into Vulkan | PC Perspective|website=www.pcper.com|access-date=May 17, 2017|archive-url=https://web.archive.org/web/20171101062642/https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan|archive-date=November 1, 2017|url-status=dead}}</ref>。这已经由Adobe的Premiere Rush展示出来,它使用clspv开源编译器<ref name=":4">{{Citation|title=Clspv is a compiler for OpenCL C to Vulkan compute shaders|date=2019-08-17|url=https://github.com/google/clspv|access-date=2024-10-14|archive-date=2020-11-28|archive-url=https://web.archive.org/web/20201128054700/https://github.com/google/clspv|dead-url=no}}</ref>,编译了大量OpenCL C内核代码,使其在部署于Android的Vulkan运行时系统上运行<ref>{{Cite web|url=https://www.khronos.org/assets/uploads/developers/library/2019-siggraph/Vulkan-01-Update-SIGGRAPH-Jul19.pdf|title=Vulkan Update SIGGRAPH 2019|access-date=2024-10-13|archive-date=2019-08-20|archive-url=https://web.archive.org/web/20190820222456/https://www.khronos.org/assets/uploads/developers/library/2019-siggraph/Vulkan-01-Update-SIGGRAPH-Jul19.pdf|dead-url=no}}</ref>。 OpenCL拥有独立于Vulkan的前瞻性路线图<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=article&item=siggraph-2018-khr&num=2|title=SIGGRAPH 2018: OpenCL-Next Taking Shape, Vulkan Continues Evolving – Phoronix|website=www.phoronix.com|access-date=2024-10-13|archive-date=2020-10-28|archive-url=https://web.archive.org/web/20201028152042/https://www.phoronix.com/scan.php?page=article&item=siggraph-2018-khr&num=2|dead-url=no}}</ref>,即曾意图在2020年发行的“OpenCL Next”<ref>{{Cite web|url=https://www.khronos.org/assets/uploads/developers/library/2019-embedded-vision-summit/1b%20Khronos-and-OpenCL-Overview-EVS-Workshop_May19.pdf|title=Khronos and OpenCL Overview EVS Workshop May19|last=Trevett|first=Neil|date=May 23, 2019|website=Khronos Group|access-date=2024-10-13|archive-date=2020-07-17|archive-url=https://web.archive.org/web/20200717035519/https://www.khronos.org/assets/uploads/developers/library/2019-embedded-vision-summit/1b%20Khronos-and-OpenCL-Overview-EVS-Workshop_May19.pdf|dead-url=no}}</ref>,它可以集成于扩展诸如Vulkan/OpenCL互操作、Scratch-Pad内存管理、扩展子组、SPIR-V 1.4摄入和SPIR-V扩展调试信息;OpenCL还在考虑类似Vulkan的装载器和分层以及“灵活配置”,以便在多种加速类型上灵活部署。 === OpenCL 3.0 === 在2020年8月30日,发行了最终的OpenCL 3.0规范<ref>{{Cite web|url = https://www.khronos.org/blog/opencl-3.0-specification-finalized-and-initial-khronos-open-source-opencl-sdk-released|title = OpenCL 3.0 Specification Finalized and Initial Khronos Open Source OpenCL SDK Released|date = September 30, 2020|access-date = 2024-10-14|archive-date = 2020-09-30|archive-url = https://web.archive.org/web/20200930143119/https://www.khronos.org/blog/opencl-3.0-specification-finalized-and-initial-khronos-open-source-opencl-sdk-released|dead-url = no}}</ref>。OpenCL 1.2功能已经成为强制性基准,而所有OpenCL 2.x和OpenCL 3.0特征变为可选项<ref>{{Cite web|url=https://www.phoronix.com/review/opencl-30-spec|title=OpenCL 3.0 Bringing Greater Flexibility, Async DMA Extensions|website=www.phoronix.com|access-date=2024-10-13|archive-date=2024-05-06|archive-url=https://web.archive.org/web/20240506194730/https://www.phoronix.com/review/opencl-30-spec|dead-url=no}}</ref>。这个规范保留了“OpenCL C”语言<ref>{{cite web |last1=Munshi |first1=Aaftab |last2=Howes |first2=Lee |last3=Sochaki |first3=Barosz |title=The OpenCL C Specification Version: 3.0 Document Revision: V3.0.7 |url=https://www.khronos.org/registry/OpenCL/specs/3.0-unified/pdf/OpenCL_C.pdf |publisher=Khronos OpenCL Working Group |access-date=Apr 28, 2021 |date=Apr 27, 2020 |archive-date=September 20, 2020 |archive-url=https://web.archive.org/web/20200920173143/https://www.khronos.org/registry/OpenCL/specs/3.0-unified/pdf/OpenCL_C.pdf |url-status=dead }}</ref>,并废弃了版本2.1介入的“OpenCL C++”内核语言<ref>{{cite web|last1=Sochacki|first1=Bartosz|title=The OpenCL C++ 1.0 Specification|url=https://www.khronos.org/registry/OpenCL/specs/opencl-2.2-cplusplus.pdf|publisher=Khronos OpenCL Working Group|access-date=Jul 19, 2019|date=Jul 19, 2019|archive-date=2021-03-06|archive-url=https://web.archive.org/web/20210306212145/https://www.khronos.org/registry/OpenCL/specs/2.2/pdf/OpenCL_Cxx.pdf|dead-url=no}}</ref>,将其替代为“C++ for OpenCL”语言<ref name=":0">{{Cite web|title=C++ for OpenCL, OpenCL-Guide|url=https://github.com/KhronosGroup/OpenCL-Guide/blob/main/chapters/cpp_for_opencl.md|access-date=2021-04-18|website=GitHub|language=en|archive-date=2025-01-08|archive-url=https://web.archive.org/web/20250108213646/https://github.com/KhronosGroup/OpenCL-Guide/blob/main/chapters/cpp_for_opencl.md|dead-url=no}}</ref>,它基于了[[Clang]]/[[LLVM]]编译器,实现了[[C++17]]的子集和{{le|标准可移植中间表示|Standard Portable Intermediate Representation|SPIR-V}}中间代码。C++ for OpenCL版本1.0的官方文档在2020年12月发表<ref>{{Cite web|date=December 2020|title=Release of Documentation of C++ for OpenCL kernel language, version 1.0, revision 1 · KhronosGroup/OpenCL-Docs|url=https://github.com/KhronosGroup/OpenCL-Docs/releases/tag/cxxforopencl-v1.0-r1|access-date=2021-04-18|website=GitHub|language=en|archive-date=2024-12-16|archive-url=https://web.archive.org/web/20241216064559/https://github.com/KhronosGroup/OpenCL-Docs/releases/tag/cxxforopencl-v1.0-r1|dead-url=no}}</ref>,它后向兼容于OpenCL C 2.0。 在{{le|IWOCL}} 21上发布的OpenCL 3.0.7,提出了C++ for OpenCL的新版本和一些Khronos openCL扩展<ref>{{Cite web |last=Trevett |first=Neil |date=2021 |title=State of the Union: OpenCL Working Group |url=https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf |page=9 |access-date=2024-10-13 |archive-date=2024-07-16 |archive-url=https://web.archive.org/web/20240716180733/https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf |dead-url=no }}</ref>。在2021年12月,发行了C++ for OpenCL版本2021<ref>{{cite web |title=The C++ for OpenCL 1.0 and 2021 Programming Language Documentation |url=https://github.com/KhronosGroup/OpenCL-Docs/releases/tag/cxxforopencl-docrev2021.12 |publisher=Khronos OpenCL Working Group |access-date=Dec 2, 2022 |date=Dec 20, 2021 |archive-date=2025-01-26 |archive-url=https://web.archive.org/web/20250126162657/https://github.com/KhronosGroup/OpenCL-Docs/releases/tag/cxxforopencl-docrev2021.12 |dead-url=no }}</ref>,它完全兼容于OpenCL 3.0标准。NVIDIA密切协作于Khronos OpenCL工作组,通过信号量和内存共享改进了[[Vulkan]]互操作<ref>{{Cite web|url=https://developer.nvidia.com/blog/using-semaphore-and-memory-sharing-extensions-for-vulkan-interop-with-opencl/|title=Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL|date=February 24, 2022|access-date=2024-10-13|archive-date=2022-07-06|archive-url=https://web.archive.org/web/20220706061023/https://developer.nvidia.com/blog/using-semaphore-and-memory-sharing-extensions-for-vulkan-interop-with-opencl/|dead-url=no}}</ref>。小更新3.0.14版本,具有缺陷修正和针对多设备的一个新扩展<ref>{{cite web | url=https://www.phoronix.com/news/OpenCL-3.0.14 | title=OpenCL 3.0.14 Released with New Extension for Command Buffer Multi-Device | access-date=2024-10-13 | archive-date=2024-10-08 | archive-url=https://web.archive.org/web/20241008120142/https://www.phoronix.com/news/OpenCL-3.0.14 | dead-url=no }}</ref>。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息