Skip to content

Commit

Permalink
update opencl.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dinyy committed Apr 21, 2024
1 parent 8a26f64 commit aa44620
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/content/posts/opencl/opencl.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ OpenCL应用程序被分为主机和设备部分。
2. 标准化的向量处理:不同芯片用的是不同指令集。具体到不同平台的应用程序,Nvidia的OpenCL编译器会输出PTX指令的程序,而IBM的OpenCL编译器会输出AltiVec指令的程序。如果面向多个硬件平台编写高性能的应用程序,OpenCL绝对会节省大量的时间。
3. 并行编程:
![这是图片](./pic-opencl-7.PNG.png "Magic Gardens")
三、OpenCL 架构
## 三、OpenCL 架构
**1、平台模型(Platform Model)**
平台模型:硬件拓扑关系的抽象描述
![这是图片](./pic-opencl-8.PNG.png "Magic Gardens")
Expand Down Expand Up @@ -105,7 +105,7 @@ kernel的类别
- Native kernels:通过host program的函数指针访问
- Built-in kernels:内置内核,与特定的设备关联

3、内存模型(Memory Model)
** 3、内存模型(Memory Model)**

内存模型必须精确地定义内存中的值如何在每个执行单元中相互作用,以便程序员可以推理OpenCL程序的正确性。我们将内存模型分为四个部分。
1. 内存区域:对主机和共享上下文的设备可见的不同内存。
Expand Down Expand Up @@ -141,7 +141,7 @@ OpenCL通过共享虚拟内存(SVM)机制将全局内存区域扩展到主
2. 细粒度缓冲SVM:共享以OpenCL缓冲内存对象内的每个字节的加载和存储为单位。加载和存储可以被缓存。这意味着一致性在同步点上得到保证。如果支持可选的OpenCL原子操作,可以使用它们来提供对内存一致性的细粒度控制。
3. 细粒度系统SVM:共享在主机内存中的任何位置发生的每个字节的加载和存储。加载和存储可以被缓存,因此一致性在同步点上得到保证。如果支持可选的OpenCL原子操作,可以使用它们来提供对内存一致性的细粒度控制。

4、The OpenCL Framework
** 4、The OpenCL Framework**
- OpenCL平台层:平台层允许主机程序发现OpenCL设备及其功能,并创建上下文。
- OpenCL运行时:运行时允许主机程序在创建上下文后操纵它们。
- OpenCL编译器:OpenCL编译器创建包含OpenCL内核的程序可执行文件。OpenCL编译器可以根据设备的功能,从OpenCL C源字符串、SPIR-V中间语言或设备特定的程序二进制对象构建程序可执行文件。
Expand Down

0 comments on commit aa44620

Please sign in to comment.