【发布时间】:2012-11-12 14:15:31
【问题描述】:
我写了这段代码: app 和 cova 是矩阵,维度等于代码中的变量 dim 和 gsingle。
dim=32;
gfor q=1:256
app(:,:,q)=cova(:,:,q)\geye(dim,dim,'single');
gend
如果我尝试增加 dim 的维度,结果会非常慢。如果我用 for 循环和 cpu 变量编写等效代码会更快。为什么会这样?
【问题讨论】:
-
Jacket 为线性代数使用上游库。不幸的是,它针对大型矩阵而不是许多小型矩阵进行了优化。所以我们实现了一个最多 32 个(或 64 个,取决于精度)的快速版本。不幸的是,之后的任何东西都使用慢速版本。这就是您所看到的行为的原因。 -- 上述功能的开发者。
-
我建议您将其发布为答案,否则问题将保持开放状态。