跳转至

OpenCL Basic

导言

OpenCL 的模型和基础概念,感觉适合异构编程。

Introduction

  • OpenCL(Open Computing Language)是一个用于异构编程的框架。
  • 它允许程序员在各种不同的硬件平台上编写代码,特别是用于高性能计算的代码。
  • OpenCL 支持多种类型的处理器,包括 CPU、GPU、DSP(数字信号处理器)和其他类型的处理器或硬件加速器。

Platform Model

  • 主机连接到一个或多个OpenCL计算设备。
  • 每个计算设备是一个或多个计算单元集合,其中每个计算单元由一个或多个处理元件组成。
  • 处理元件以SIMD(单指令多数据)或SPMD(单程序多数据)并行性执行代码。

Device Command Execution

Memory hierarchy Model

OpenCL has a hierarchy of memory types: (个人评价和GPU很像)

  • Host memory - available to the host CPU
  • Global/Constant memory - available to all compute units in a compute device
  • Local memory - available to all the processing elements in a compute unit(Work-group)
  • Private memory - available to a single processing element

OpenCL内存管理是显式的。上述内存都不会自动同步,因此应用程序会根据需要显式(主动)地在内存类型之间移动数据。

参考文献

评论