vector data types on AMD GPUs

Discussion created by endoerner on Mar 16, 2018
Latest reply on Mar 21, 2018 by endoerner

First of all hi to everyone!, I am physicist and I am currently developing a Monte Carlo code for particle transport using OpenCL.


My question is regarding the convenience of using vector data types (like float4) on AMD CPUs and GPUs. Reading some documentation I have become some confused about this issue, for example, in my iMac (CPU: Intel(R) Core(TM) i5-6500 and GPU: AMD Radeon R9 M380) from the CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT attribute I obtain 4 for the CPU and 1 for the GPU.


From the result for the GPU my question arises, which is then the advantage of using vector data types on GPUs?. I have read that nowadays GPUs use mostly scalar processors and therefore do not benefit from the use of vector data types on arithmetic computation, is that also true for loading/storing data from/to global memory?.


Currently in my code I store the particle attributes (position, velocity, energy, etc) as float4 data types, should I keep doing that or I should just use plain floats?. Thanks for your help!.