hi all

i thought that gpus are kinda vector programming tools , but how that possible while,
when i get info
of gpu device with clGetDeviceInfo and option CL_DEVICE_PREFERRED_VECTOR_WIDTH_TYPE it return
only 1 for each TYPE { CHAR,INT,..}???
but when i get info of my cpu it return deferent, base on type.
for example
when i use:
clGetDeviceInfo(devices, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,
sizeof(char_width), &char_width, NULL);
char_width become 16 . (device is cpu type);

whereas
clGetDeviceInfo(devices, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,
sizeof(char_width), &char_width, NULL);
char_width become 1 .(device is gpu type);
it seems that cpu do better vector programming than gpu????????
what is going on??