2.1 介绍

OpenCL的发展也让很多行业团体感到很高兴,因为OpenCL通过标准化的编程模型就能让从市场上可以买到的设备,获得更高的性能。每个硬件厂商对OpenCL都有特殊的定位,并且会让一些特殊架构的处理器来支持OpenCL的一些特性。使用者可以通过自己的尝试,发现硬件上支持的一些特性(比如,clGetDeviceInfo能够查看硬件设备所支持的一些特性)。

虽然,OpenCL很依赖硬件,但是在算法层面更依赖于内核的实现,具体平台表现的独立性依旧是一个目标(与显示相比)。OpenCL2.0标准中,加快向这个目标迈进的步伐。作为开发者,我们需要了解不同硬件特性潜在的优势,其中设备扮演着重要的角色,并且不同的设备有着对应的硬件架构。当读者已经对目标硬件足够了解时,就能在设计并行算法和软件时做出更加理性的抉择。这里的“了解”指的是了解OpenCL中编程、内存和运行时模型设计背后的哲学。

OpenCL并行模型希望能够在现有的硬件上高效的运行相应应用,比如在串行处理器、对称多处理器、多线程或SIMD,以及一些支持向量的设备。本章我们会讨论这些设备,以及对设备的整体设计。