【问题标题】:mldivide very slow with jacket?mldivide 用夹克很慢?
【发布时间】: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 个,取决于精度)的快速版本。不幸的是,之后的任何东西都使用慢速版本。这就是您所看到的行为的原因。 -- 上述功能的开发者。
  • 我建议您将其发布为答案,否则问题将保持开放状态。

标签: matlab jacket


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 2019-03-02
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多