为什么我们在 matlab 代码中使用 inf 和 power

Why we using inf and power in the matlab code

我在 Matlab 中使用了以下代码,混淆是为什么我们在这里使用 inf 以及为什么我们需要 power(2,14:28) 然后我们使用 size with 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 的新手,试图理解这段代码。 here为代码来源

power(2,14:28) 只是计算 element-wise 幂 2.^(14:28) 的详细方法,即 shorthand 用于创建值向量 [2 ^14,2^15,...,2^28].

inf(size(sizes)) 只是 pre-allocating 双精度数组的代码,其大小与 power(等)调用生成的所有值都初始化为 inf。大概在代码的下游,这些 inf 值将被替换为其他一些值。

编辑下游代码:

如果您查看代码下游如何使用变量大小:

numElements = sizes(ii)/sizeOfDouble;
hostData = randi([0 9], numElements, 1);
gpuData = randi([0 9], numElements, 1, 'gpuArray');

可以看到,它只是简单的用于其他变量的元素个数。也就是说,测试将 运行 具有各种大小的变量以查看时间影响,并且 sizes 变量用于为测试的特定迭代中使用的变量生成元素数。