OpenCL产业开发链
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产业开发链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCL框架与示例
- 下一篇: LLVM与Clang编译图例