MKLを使用して行列を転置するより速い方法を見つける必要があります。そして私はMKLからmkl_domatcopyを試みましたが、決してそれを得ることはありません。ここでMKLからmkl_domatcopyを正しく使うには?
は、テストコード(Fortranの)です:
PROGRAM MAIN
INTEGER, PARAMETER:: NROW = 3 !rows
INTEGER, PARAMETER:: NCOL = 3 !cols
REAL*8, ALLOCATABLE:: M(:,:)
REAL*8, ALLOCATABLE:: MT(:,:)
INTEGER:: i,j
ALLOCATE(M(NROW,NCOL))
ALLOCATE(MT(NROW,NCOL))
DO i = 1, NROW
DO j = 1, NCOL
M(i,j)=i
END DO
END DO
call mkl_domatcopy("c","t",3,3,9,M,3,MT,3)
print *,M
print *,"************************"
print *,MT
END
、出力は次のとおりです。?MTが0である理由私はそれが間違っているか何かを使用beacause
1.00000000000000 2.00000000000000 3.00000000000000
1.00000000000000 2.00000000000000 3.00000000000000
1.00000000000000 2.00000000000000 3.00000000000000
************************
0
これは?この機能について
ドキュメント: https://software.intel.com/en-us/node/520863
PS:私はまだ 'アルファ' は何を意味するのか得ることはありません。
を乗じた各要素は、この固定またはフリーフォーマットされたコードであることに注意してください。私はどのような位置で固定フォーマットされたコードの場合、 '呼び出し'の開始位置は1のように見え、少なくとも6の位置に移動します。 – albert
サブルーチンの(明示的な)インターフェイスを指定する手段(モジュール、インクルードファイルなど)がありません。(上のコメントのように)サブルーチンは実際にはコメントではありません。 – francescalus
固定の書式設定されたコードです。私は「ポジション1」を得られないことを申し訳なく思う。「コール」を一番下に移動すべきであることを意味するのだろうか? – Tau