Reorganizing current data structure in order to take advantage of GPU

4 visualizzazioni (ultimi 30 giorni)
I currently have nested structures like
myStructreadIn(var1).NestedLevel1(var2)NestedLevel2(var3).dat(vector); Step (1)
I would like to use Matlab's gpu parallization support, and for that I know data must be optimally structured. Also, I know that gpu use doesn't always make sense, and that CPU parallelization is often better. In my case, I am taking a bunch of fft's and I understand from reading that GPU 'could' be a good way to go, by making gpuArrays and take fft's columnwise.
I also know that nested structures are not good for gpu. Is there a way I can reorganize this nested strucuture, eg
  • Is it gpu-paradigmatic to organize this nested structure data instead in a really large matrix, in order to vectorize it?
  • I also take xcorr of data after re-shuffling the nested levels, in order to get the correct (x-dir, y-dir, z-dir), then take fft in another direction
Thanks

Risposta accettata

Joss Knight
Joss Knight il 15 Apr 2022
Evidently with your nested structure you are not required to have uniform data - every element at each level can have a different size of sub-level, whereas if you reorganise as an array everything has to be the same. But yes, if you can reasonably rearrange your data structure as a multi-dimensional array you will gain an advantage on the GPU (and on CPU).

Più risposte (0)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by