我在 Matlab 中使用以下代碼,混淆是我們為什么inf在這里使用以及為什么我們需要power(2,14:28)以及后來我們使用 size 和 in size。
gpu = gpuDevice();
fprintf('Using a %s GPU.\n', gpu.Name)
sizeOfDouble = 8; % Each double-precision number needs 8 bytes of storage
sizes = power(2, 14:28);
sendTimes = inf(size(sizes));
gatherTimes = inf(size(sizes));
我是 Matlab 的新手,試圖理解這段代碼。這是代碼的來源
uj5u.com熱心網友回復:
power(2,14:28) 只是計算元素冪 2.^(14:28) 的詳細方法,它是創建值向量 [2^14,2^15,..., 2^28]。
inf(size(sizes)) 只是用于預分配與 power(etc.) 呼叫產生的大小相同的雙陣列的代碼,所有值都初始化為 inf。大概在代碼的下游,這些 inf 值將被其他一些值替換。
編輯下游代碼:
如果您查看如何在代碼下游使用變數大小:
numElements = sizes(ii)/sizeOfDouble;
hostData = randi([0 9], numElements, 1);
gpuData = randi([0 9], numElements, 1, 'gpuArray');
可以看到,它只是簡單的用于其他變數的元素個數。也就是說,將使用各種大小的變數運行測驗以查看時序影響,并且大小變數用于生成在測驗的特定迭代中使用的變數的元素數量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481589.html
標籤:matlab
上一篇:創建動態結構變數并保存它們
