GPU计算单元?

时间:2014-03-19 17:07:23

标签: opencl gpu gpgpu

您好,我读过OpenCL文档, 计算单元有许多处理元素。 处理元素只包含ALU吗? 在处理元件上,单个ALU是否有SIMD操作?或4个ALU可以制作SIMD?

2 个答案:

答案 0 :(得分:1)

我认为大多数当前设备将单个ALU映射到处理元件,而ALU是单个SIMD核心。实际上,不支持SIMD的CPU不兼容OpenCL。

关于OpenCL的问题在于,除非您为非常具体的硬件编写内核,否则您不必担心确切的底层架构。未来的设备可以使用与制造商选择实施SIMD架构一样多的调度程序/ ALU /内存控制器/等。

如果你想跟随"写一次,在任何地方运行" mantra,您需要坚持使用OpenCL API公开的属性。 (例如CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE和CL_DEVICE_PREFERRED_VECTOR_WIDTH _ *)

答案 1 :(得分:0)

有些ALU每个ALU共享特殊功能单元,有些ALU每个ALU具有相同数量的FPU,没有任何特殊单元,也有寻址单元,标量单元。 AMD与NVIDIA和INTEL之间的SIMD组织不同。有些人有16个人,有些人有32个人。然后这些组合在一起为其中一个生产者制作一个64宽的计算单元,而为另一个生产者制作192个计算单元。这些ALU的作用通常由驱动程序优化改变。您只需编写单个指令 - 多个数据代码,驱动程序负责优化,除非您选择优化执行参数。

您可以使用opencl api方法查询必要的信息。