OpenCL specification provides its own set of data types, whether vector or scalar. This is important since it will enable the kernel code to be portable across various OpenCL devices and different device compilers. In the following sections we will discuss the different data types, which are defined in the OpenCL specification.
OpenCL C standard categorizes a list of data types referred to as "basic data types". This is tabulated in the following table. Associated with each basic data type is a vector data type, which can be used by a C programmer. Most of the OpenCL devices do support Instruction Set Architecture (ISA), which take inputs as vector data types. For example, the AMD FMA4 ISA extension supports Fused Multiply Add (FMA) operation on 256 bit vector data. So if these vector data types are used while writing code it is more likely that the vector data type are processed by codes, which uses vector instructions at runtime and is...