我在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,试图理解这段代码。这里是代码的源代码
发布于 2022-05-23 20:42:33
幂(2,14:28)只是计算元素级幂2.^(14:28)的详细方法,它是创建值2^14,2^15,...,2^28的向量的缩写。
inf( size (Size))只是用于预先分配与电源大小相同的双数组的代码(等等)。由初始化为inf的所有值生成的调用。想必在代码的下游,这些inf值将被替换为其他值。
编辑下游代码:
如果您查看代码下游是如何使用变量大小的:
numElements = sizes(ii)/sizeOfDouble;
hostData = randi([0 9], numElements, 1);
gpuData = randi([0 9], numElements, 1, 'gpuArray');您可以看到,它只是用于其他变量的元素数。也就是说,测试将与各种大小的变量一起运行,以查看时间含义,而sized变量用于为测试的特定迭代中使用的变量生成元素数。
https://stackoverflow.com/questions/72354407
复制相似问题