了解OpenCL范例

时间:2013-12-16 10:07:33

标签: graphics parallel-processing opencl

OpenCL使用设备对象抽象硬件。每个设备对象由不同的计算单元组成,每个计算单元具​​有一定数量的工作元素。

这3个概念如何在物理上进行映射?

我们以一张显卡为例。

这是我的猜测:

设备 - >显卡

计算单位 - >图形卡核心

工作要素 - >图形卡核心(流核心)内的矢量alus单细胞

我从不同的OpenCL教程中读到的是,我们应该将我们的问题数据划分为1,2或3维空间,然后将一部分n维数据分配给每个工作组。然后,在单个计算单元内的流核心中执行工作组。

如果我的显卡有4个计算单元,这是否意味着我最多可以拥有4个工作组? 我的图形卡中的每个计算单元都有48个流核心。这又意味着我应该创建最多48个元素的工作组吗? 48的倍数?

我想OpenCL有一些调度程序允许我们使用比可用硬件资源更多的工作组和线程,但我认为真正的并行性是按照我上面所述完成的。

我的OpenCL范式是否合适?

0 个答案:

没有答案