MATLAB Answers

How multidimensional gpu arrays are stored on GPU and how are they proced when functions are invoked?

3 views (last 30 days)
Mantas Vaitonis
Mantas Vaitonis on 12 Mar 2020
Commented: Edric Ellis on 13 Mar 2020
Dear All,
Could you please help me to better understand how data is passed in GPU when using multidimensional arrays from theoretical part of the world :)
For example, correct me if I am wrong, when creating for example 3 dimensional gpuarray (100x100x100) it is stored on global memory, once MATLAB invoke function to multiply this 3D array with other, then it is reverts each third dimension back to two dimension array and it is stored on shared memory that It could be accessed by different GPU cores. Is it something like this?

  1 Comment

Edric Ellis
Edric Ellis on 13 Mar 2020
MATLAB arrays (include gpuArrays) are stored in column-major format, even for 3D arrays. If you're referring to using pagefun(@mtimes,...) with gpuArray data, then the underlying operation knows how to find the "pages" of the gpuArray data without moving bytes around.
Do you have a specific query in mind, or are you simply curious? The layout of gpuArray data should be irrelevant to you unless you're using the GPU MEX interface.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by