KPETOB.COM

Kretov Nikolai Nikolaevich:OpenCL 简介

该开发项目由臭名昭著的 Khronos Group 领导。促进 OpenGL 和 OpenAL 的。此外,OpenGL 和 OpenCL 本质上来自相同的软件基础设施,并且可以非常紧密地交互。

这个想法的本质是我们绝对不在乎 - 我们面前的处理器或视频卡。我们从平台中抽象出来,并认为我们有 N 个计算设备。 OpenCL 作为标准描述了在这些设备上进行计算的规则。因此,我们得到了一个绝对可移植到任何平台的代码。 AMD 或 Intel 您拥有处理器、nVidia 或 ATI 视频卡,或带有 Cell-cores 的刀片服务器 - 这根本不重要。只要设备支持 OpenCL 标准,该应用程序就可以工作。

值得注意的是,我们正在谈论关于 SIMD 指令的并行计算。

OpenCL 是 C 语言的扩展,我们有一个宿主应用程序和一个 OpenCL 应用程序。主机准备一组可用设备以供使用,并将任务传递给 OpenCL 部分执行。之后,OpenCL 完成并将结果返回给主机。

OpenCL 代码存储在 *.cl 文件中,并在运行时针对给定架构编译。这确保了应用程序的可移植性。

Apple 更进一步,在其 Snow Leopard 操作系统中发布了对 OpenCL 的内核级支持,实现了显着的性能提升。

它有什么用?

OpenCL 很好地吃掉了 SIMD 算法。这就是他被创造的目的。这就是各种密码学、各种后处理效果、声音处理和各种数学模型、视频编码。

对于开发人员

目前,nVidia OpenCL SDK、AMD OpenCL SDK 的版本已经可用。您可以随时从这些公司的官方网站下载它们。

在以后的文章中,我将告诉您如何在自己的应用程序中实际使用这项技术。