10 要素の長さの列ベクトル A があります。10 x 10 の行列 B があります。B のメモリ ストレージは列優先です。B の最初の行を列ベクトル A で上書きしたいと思います。
明らかに、私はできる:
for ( int i=0; i < 10; i++ )
{
B[0 + 10 * i] = A[i];
}
0 + 10 * i
ここでは、B が列優先のストレージを使用していることを強調するためにゼロを残しました(ゼロは行インデックスです)。
今夜の CUDA ランドでの悪ふざけの後、私は CPU 機能がストライド memcpy を実行する可能性があるのではないかと思いました?? 低レベルでは、パフォーマンスはストライドされたロード/ストア命令の存在に依存すると思いますが、x86アセンブリにあることを思い出しませんか?