0

我写了这段代码:app和cova是矩阵,维度等于代码中的变量dim和gsingle。

dim=32;
gfor q=1:256
     app(:,:,q)=cova(:,:,q)\geye(dim,dim,'single');
gend

如果我尝试增加 dim 的维度,结果会非常慢。如果我用 for 循环和 cpu 变量编写等效代码会更快。为什么会这样?

4

1 回答 1

1

Jacket 为线性代数使用上游库。不幸的是,它针对大型矩阵而不是许多小型矩阵进行了优化。因此,我们为宽度高达 32(或 64,具体取决于精度)的矩阵实现了一个快速版本。不幸的是,之后的任何内容都使用慢速版本。这就是您所看到的行为的原因。我是上述功能的开发人员。

于 2012-12-22T03:28:13.793 回答