Obtain memory usage and class for GPU variable

4 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);

Kategorien

Mehr zu GPU Computing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by