2012-11-12 32 views
0

我寫了這段代碼: app和cova矩陣的維數等於變量dim中的代碼和gsingle。mldivide外套很慢?

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

,如果我嘗試增加暗淡結果的尺寸是很慢的。如果我用for循環寫入等效代碼並且使用cpu變量更快。爲什麼會發生?

+0

Jacket使用線性代數的上游庫。不幸的是,它優化了大型矩陣,而不是許多小型矩陣。所以我們實現了一個高達32的快速版本(或64個,取決於精度)。不幸的是,之後的任何事情都使用慢版本。這是你看到的行爲的原因。 - 該功能的開發人員。 –

+0

我建議你將其作爲答案發布,否則問題將保持打開狀態。 –

回答

1

Jacket使用線性代數的上游庫。不幸的是,它優化了大型矩陣,而不是許多小型矩陣。因此,我們爲寬度最高爲32的矩陣實現了一個快速版本(或64個,具體取決於精度)。不幸的是,之後的任何事情都使用慢版本。這是你看到的行爲的原因。我是上述功能的開發人員。