加载中...

OpenCL(Open Computing Language)是由 Khronos Group 维护的开放、免版税的异构并行编程标准,最初由苹果公司发起,2008 年发布首个版本。它定义了一套 C 语言方言(内核语言)和运行时 API,用于在 GPU、多核 CPU、FPGA、DSP 等不同架构的计算设备上执行并行程序。
OpenCL 将系统抽象为一个主机(Host)和若干计算设备(Device)。开发者编写内核(Kernel)函数,由运行时分发到设备上的大量工作项(Work-item)并行执行,工作项进一步组织为工作组(Work-group),对应硬件的线程调度单元。内存模型分为全局内存、局部内存、私有内存等层级。
OpenCL 的最大优势是跨厂商、跨设备的可移植性,AMD、Intel、NVIDIA、ARM 等均提供实现;劣势在于生态和工具链成熟度长期落后于 NVIDIA 私有的 CUDA,性能调优也往往需要针对具体硬件重写。
在深度学习领域 OpenCL 影响力有限,但在嵌入式视觉、移动 GPU 计算和 FPGA 高层次综合等场景仍被广泛使用,后续标准 SYCL 在其基础上提供了现代 C++ 单源编程体验。

登录 后参与讨论
暂无讨论,来发表第一条评论吧