I an new to this domain. i want to ask that why arrays are inefficient on GPU?
show us where you saw this information about inefficient arrays on a GPU.
Even the current generation of GPUs have 5-10 times the memory bandwidth of high-end CPUs. GPU also use DDR5 RAM which is not inefficient.
Please show us your source or code which proves your assertion.
Not sure what you read. As just one counterexample to your assertion that “arrays are inefficient on GPU”, consider that there is company whose business consists of providing GPU-accelerated array-processing middleware: http://arrayfire.com/
Arrays of Structs can be somewhat inefficient to access on the GPU, but that can be worked around using Structs of Arrays storage.
Arrays of simple data types consisting of 4, 8 and 16 byte words will be handled very efficiently by the GPU’s memory controllers in sequential access scenarios. You can get very close to peak memory bandwidth here.
Thinking back to IDFs (Intel Developer Forums) prior to the year 2000, they were already advocating the use of SOA for high-performance codes on CPUs, so I would claim GPUs don’t introduce anything new to the performance optimization game in this regard.