MATLAB: Flattening of gpuArray – row major or column major order

cudafevalgpuarrayParallel Computing Toolbox

Dear Matlab experts,
I am having some unexpected results passing a 2D Matrix to a CUDA kernel via feval. I think the reason might have to do with the way Matlab flattens the array when passing it to the kernel, but this far I haven't found anything online that would confirm this. My CUDA kernel expects row-major order.
How does Matlab pass the array to the GPU? Does it flatten it with row-major order or column-major order?
Thankful for response!

Best Answer

gpuArray data is stored in column-major format, just like CPU data in MATLAB.