OpenCL 架构

Platform 模型

在OpenCL里,对于并行异构设备,按下图理解

  • 平台模型由一个 Host 连接一个或多个设备 OpenCL Device;
  • OpenCL Device 可划分为一个或多个计算单元 CU,Compute Unit;
  • CU 可划分为多个处理部分 PE,Processing Element;
  • OpenCL 应用程序分为两部分:Host 代码和 Device kernal 代码。Host 执行 Host 代码,并将 kernal 代码以命令方式提交至 OpenCL Device 执行;
  • OpenCL 编程通常以最小粒度。

Memery 模型

类型 说 明
Host memory 只能 Host 访问
Global memory 设备内存,Host 负责该内存中 Buffer 分配和释放,Host、PE可读写
Constant memory 设备内存,Host 可读写,PE 只读,用于传输常量数据
Local memory CU 内存,Host 及其他 CU 看不到,该 CU 内部 PE 可读写
Private memory PE 私有内存,Host 、其他 CU 及该 CU 的其他 PE 看不到

内存对象,OpenCL 定义了三种 Host 内存类型:

  • 数组,连续内存,以指针访问;
  • 图像,不一定是连续内存,不能直接访问,以专用读写函数访问;
  • 管道,队列形式,内置函数访问。

2024.12.27 补充
内存模型下面这张图更清楚:

转自 https://deepinout.com/opencl/opencl-basic-concept/opencl-memory-region.html

posted @   turbinee  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示