0

私はこのコードを書きました: app と cova は、コードと gsingle の変数 dim に等しい次元を持つ行列です。

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 に答える