Obtain memory usage and class for GPU variable

8 Ansichten (letzte 30 Tage)
Peter
Peter am 2 Mai 2016
Kommentiert: Peter am 4 Aug. 2021
How can I get the amount of memory space (bytes) and the class (single/double/int) of a GPU variable? 'whos' doens't provide what I need. E.g.:
A=rand(1000,gpuArray);
infoA=whos('A');
gives: infoA =
name: 'A'
size: [1000 1000]
bytes: 108
class: 'gpuArray'
global: 0
sparse: 0
complex: 0
nesting: [1x1 struct]
persistent: 0
but i still don't know how many bytes of GPU memory A is taking and whether A is a single / double etc.

Akzeptierte Antwort

Matt J
Matt J am 1 Mär. 2021
See whosGPU.

Weitere Antworten (1)

Edric Ellis
Edric Ellis am 3 Mai 2016
Bearbeitet: Edric Ellis am 3 Mai 2016
Unfortunately, whos only reports the memory usage on the CPU of a gpuArray. For non-sparse gpuArray data, you can compute the number of bytes consumed like so:
dataType = classUnderlying(A);
switch dataType
case 'double'
bytesPerElem = 8;
case 'single'
bytesPerElem = 4;
case 'logical'
bytesPerElem = 1;
otherwise
bytesPerElem = str2double(regexprep(dataType, '[a-z]', '')) / 8;
end
if ~isreal(A)
bytesPerElem = 2 * bytesPerElem;
end
totalBytes = bytesPerElem * numel(A);

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by