OpenCL 学习笔记6 在CPU/GPU平台上的实现

CPU

在多核上运行一个单独的work-group会导致cache共享问题。 为缓解这些问题,OpenCL线程轮流运行同一个work-group内的每一个work-item, 当这个work-group内所有work-item都运行完成后, 在运行同一个工作队列中的下一个work-group。 因此,同一个work-group内的线程是没有并行性的, 如果可能的话,多个操作系统线程将允许多个work-group并行执行。


GPU

与CPU的差异主要在以下几点:

1. 宽单指令多数据(SIMD)的执行:多个执行单元在不同的数据上执行相同的命令。

2. 大量线程:支持大量的并发线程上下文。

3. 硬件scratchpad内存:程序员可以完全控制的物理缓存。

4. 硬件同步支持: 支持并发硬件线程间的细微粒通信。

5. 硬件管理任务及调度: 硬件负责管理工作队列和负载平衡。

你可能感兴趣的:(OpenCL 学习笔记6 在CPU/GPU平台上的实现)