インテル® マス・カーネル・ライブラリー (インテル® MKL) を使用した場合に最適なパフォーマンスが得られるように、ソースコードでデータが以下のようにアライメントされていることを確認してください。
名前の行列の型と格納位置 (2 つめと 3 つめの文字) が HP、OP、PP、SP、TP、UP のルーチンは、圧縮形式で行列を処理します (『インテル® MKL リファレンス・マニュアル』の LAPACK の「ルーチン命名規則」セクションを参照)。 これらの機能は、名前の行列の型と格納位置 (2 つめと 3 つめの文字) が HE、OR、PO、SY、TR、UN の非圧縮ルーチンの機能と厳密に等価ですが、パフォーマンスは大幅に低くなります。
メモリー制限があまり厳しくない場合は、非圧縮ルーチンを使用してください。この場合、それぞれの圧縮ルーチンで要求されるメモリーよりも N2/2 多いメモリーを割り当てる必要があります。N は問題サイズ (方程式の数) です。
例えば、エキスパート・ドライバーを使用した対称固有値問題を解く時間を短縮するには、次の非圧縮ルーチンを使用します。
call dsyevx(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, iwork, ifail, info)
a は少なくとも N2 の要素を含む次元 lda-n です。
変更前の圧縮ルーチンは次のとおりです。
call dspevx(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, ifail, info)
ap は次元 N*(N+1)/2 です。
追加の条件により FFT 関数のパフォーマンスを向上できます。
2 次元配列の最初の要素のアドレスとリーディング・ディメンジョンの値 (n*element_size) が、以下のキャッシュ・ライン・サイズの倍数である必要があります。
© 2007 - 2010 Intel Corporation. 無断での引用、転載を禁じます。