OpenCL环境下的并行化编程

No replies
Demi
Demi 的头像
Offline
Joined: 2017-03-07

OpenCL是一个开放的工业标准,它可以为CPU和GPU等不同的设备组成的异构平台进行编程。OpenCL是一种语言,也是一个为并行编程而提供的框架,编程人员可以利用OpenCL编写出一个能够在GPU上执行的通用程序。

OpenCL的技术核心包好了下面的四种模型:

• 平台模型(Platform Model):OpenCL平台模型定义了主机和设备的角色,为程序员写在设备上执行的OpenCL C函数(内核)提供了一个抽象的硬件模型。平台模型确定了主机上的处理器能够协调执行,而且存在一个或者多个处理器能够执行OpenCL C代码(设备)。

• 执行模型(Execution Model):定义如何在主机上配置OpenCL环境以及内核(kernel)是如何在设备上执行的。这其中包括在主机上设置OpenCL上下文,提供主机和设备交互的机制,定义了内核在设备上执行的兵法模式。

• 内存模型(Memory Model):定义了内核使用的抽象的内存层次。

• 编程模型(Programming Model):定义了并发模型如何让映射到物理硬件。

OpenCL框架被分成平台层API和运行时API,平台层API允许应用查询平台和设备,而且可以通过上下文来管理它们。运行时的API利用上下文去管理设备上的内核的执行。

转自: ZhangPY的专栏

--电子创新网--
粤ICP备12070055号