ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCL产业开发链

2021-12-11 07:00:31  阅读:210  来源: 互联网

标签:开发人员 OpenCL 产业 C++ 编译器 开发 应用程序 内核


OpenCL产业开发链

OPEN STANDARD FOR PARALLEL PROGRAMMING OF HETEROGENEOUS SYSTEMS

OpenCL™ (Open Computing Language,开放计算语言)是一种开放、免版税的标准,适用于超级计算机、云服务器、个人计算机、移动设备和嵌入式平台中各种加速器的跨平台并行编程。OpenCL极大地提高了众多市场类别中各种应用程序的速度和响应能力,包括专业创意工具、科学和医疗软件、视觉处理以及神经网络训练和推理。

OpenCL is Widely Deployed and Used

 

 

 OpenCL for Low-level Parallel Programing

OpenCL通过将计算最密集的代码卸载到加速器处理器或设备上,加速应用程序。OpenCL开发人员使用基于C或C++的内核语言编写程序,这些程序通过设备编译器在加速器设备上并行执行。

 

 

 How OpenCL Relates to Other Khronos Parallel Acceleration Standards

OpenCL为业界提供了最低的“close-to-metal”处理器敏捷执行层,用于加速应用程序、库和引擎,还为编译器提供了代码生成目标。与Vulkan等“GPU-only”API不同,OpenCL支持使用多种加速器,包括多核CPU、GPU、DSP、FPGA和专用硬件,如推理引擎。  

 

 

 OpenCL Deployment Flexibility

随着平台和设备的工业应用场景变得越来越复杂,各种工具正在发展,使OpenCL应用程序能够部署到没有可用的本机OpenCL驱动程序的平台上。例如,开源clspv编译器和clvk API转换器,使OpenCL应用程序能够在Vulkan Runtime上运行。这为OpenCL开发人员在何处部署,如何部署OpenCL应用程序,提供了极大的灵活性。

 

 

 Open source software tools enable OpenCL kernels to be executed over multiple target APIs

OpenCL Programming Model

OpenCL应用程序分成主机和设备部分,主机代码使用通用编程语言如C或C++编写,由传统编译器编译,在主机CPU上执行。

设备编译阶段可以在线完成,即在使用特殊API调用执行应用程序期间。也可以在执行应用程序前编译成机器二进制或由Khronos定义的特殊可移植中间表示形式(称为SPIR-V)。有一些特定于领域的语言和框架,可以使用source-to-source的翻译,或生成二进制/SPIR-V(例如Halide),编译成OpenCL。

 

 

 Traditional vs OpenCL programming paradigm

应用程序宿主代码经常用C或C++编写,但是其它语言的绑定也可用,如Python。内核程序可以用C语言(OpenCL C)或C++(OpenCL的C++)编写,使得开发人员能够在内核程序中编程计算密集型应用程序的部分。OpenCLC语言的所有版本都基于C99。社区驱动的OpenCL语言的C++,将OpenCL和C++ 17的能力结合。

C++ for OpenCL Kernel Language

OpenCL工作组已经从OpenCL 2.0中定义的最初OpenCL C++内核向C++ C++过渡,为开源社区开发的OpenCL提供了改进的特性,并与OpenCL兼容。OpenCL的C++是由CLAN支持的。使开发人员能够在OpenCL内核中,使用大多数C++17特性。在很大程度上与OpenCL C 2.0向后兼容,能够使用OpenCL 2.0或更高版本编程加速器,具有支持SPIR-V的一致性驱动程序。可以通过OpenCL支持页面跟踪,在Clang中的实现。

 

 

 

 

参考链接:

https://www.khronos.org/api/opencl

标签:开发人员,OpenCL,产业,C++,编译器,开发,应用程序,内核
来源: https://www.cnblogs.com/wujianming-110117/p/15674516.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有