gpt4 book ai didi

matlab - Matlab中同时涉及单双矩阵时的内存和速度问题

转载 作者:行者123 更新时间:2023-12-02 05:44:48 25 4
gpt4 key购买 nike

如果 A 是一个 n × n 双矩阵,B 是一个 n × n 单矩阵(n 很大),我们要计算 A*B。我知道生成的矩阵是单一类型。我关心的是

1) Matlab 会隐式创建一个时间单一矩阵来存储 A 的值吗?或者说,这种混合类型的计算是否需要更大的内存占用?

2)这种混合类型计算比同型计算慢吗?或者说,这种混合类型的计算会减慢程序速度吗?

我们应该尝试显式地使用同型数据进行计算吗?我相信,如果我们知道 Matlab 的确切工作原理,我们就可以更准确地预测代码的行为。这一定会有帮助。

最佳答案

我同意 Ander 的观点,并继续计时以验证任何关于更喜欢什么(单精度或 double )的声明。以下是对两种方法进行基准测试的示例:

   N = 1e3;
A1 = single(rand(N,N));
A2 = double(rand(N,N));
B = double(rand(N,N));

现在我们可以继续对这两种方法进行计时。我通常会多次重复相同的计算(这里我做了 100 次):

    tic; for ii = 1: 100 ; C1 = A1 * B; end; toc % mixed single and double
Elapsed time is 0.600353 seconds.
tic; for ii = 1: 100 ; C2 = A2 * B; end; toc % both doubles
Elapsed time is 1.500283 seconds.

所以看起来当 A 是单精度 (A1) 时,它的速度是原来的两倍。

关于matlab - Matlab中同时涉及单双矩阵时的内存和速度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37188314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com