Obtain memory usage and class for GPU variable
1 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
更多回答(1 个)
Edric Ellis
2016-5-3
编辑:Edric Ellis
2016-5-3
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);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 GPU Computing in MATLAB 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!