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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律