文件名称:OpenCL架构1-android官方培训课程中文版v0.9.7
文件大小:5.1MB
文件格式:PDF
更新时间:2024-06-27 13:55:48
OpenCL
第二章 OpenCL架构 5 第二章 OpenCL架构1 OpenCL是一个用于异构平台上编程的开放性行业标准。这个平台可以包括 CPU GPU和其他各 类计算设备,例如 DSP和Cell/B.E.等等,OpenCL会将各类计算设备组织成一个统一的平台。 OpenCL 不仅仅是一种编程语言,更是一个完整的并行编程框架,它包括编程语言,API,函数库以及运行时系 统来支持软件在整个平台上的开发。 OpenCL是为那些想要编写出可移植高效程序的程序开发人员量身定做的。包括软件库开发人 员,中间商和以提升性能为导向的程序开发者。OpenCL为他们提供了一个低级别硬件抽象层和一个 编译框架来支持编程,OpenCL将许多并行硬件设备行为抽象为API来引导开发者进一步加速他们的 程序。 本章将通过对以下 OpenCL中各个模型的介绍使读者了解 OpenCL所包含的核心思想: 平台模型Platform Model 内存模型Memory Model 执行模型Execution Model 编程模型Programming Model 2.1 平台模型Platform Model 平台模型如图 2.1所示。由一个主机 (host)连接一个或多个 OpenCL设备构成。其中每个 OpenCL 设备又可以分割成一个或多个计算单元 (CU),每个计算单元又可以进一步分割成一个或多个处理单 元 (PE),各种计算操作都是在处理单元中完成的。所有由 OpenCL编写的应用程序都是从 host启动并 在 host上结束的,host端管理着整个平台上的所有计算资源。应用程序会从host端向各个 OpenCL设 备的处理单元发送计算命令。在一个计算单元内的所有处理单元会执行完全相同的一套指令流程。指 令流可以是 SIMD模式或者SPMD模式。 图 2.1: Platform model …one host plus one or more compute devices each with one or more compute units each with one or more processing elements. 1 本章插图及部分文字内容源自Khronos Group的OpenCL Speci�cation。