From dbfca1a6f6c50f04c2f4d4fd13ec9333e3115533 Mon Sep 17 00:00:00 2001 From: Krad Date: Mon, 24 Apr 2023 15:22:47 +0800 Subject: [PATCH] Improve MatrixSlice assign performance. --- src/Matrix.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Matrix.cpp b/src/Matrix.cpp index 6e78ecc..2094229 100644 --- a/src/Matrix.cpp +++ b/src/Matrix.cpp @@ -542,12 +542,19 @@ namespace Aurora { switch (mSliceMode) { case 2:{ if (mType== Normal) { - cblas_dcopy_batch_strided(mSize, slice.mData, slice.mStride, slice.mStride2, mData, mStride, - mStride2, mSize2); +// cblas_dcopy_batch_strided(mSize, slice.mData, slice.mStride, slice.mStride2, mData, mStride, +// mStride2, mSize2); + for (int i = 0; i < mSize2; ++i) { + cblas_dcopy(mSize,slice.mData + i*slice.mStride2,slice.mStride,mData+i*mStride2,mStride); + } } else { - cblas_zcopy_batch_strided(mSize,(std::complex*)slice.mData,slice.mStride,slice.mStride2, - (std::complex*)mData,mStride,mStride2,mSize2); +// cblas_zcopy_batch_strided(mSize,(std::complex*)slice.mData,slice.mStride,slice.mStride2, +// (std::complex*)mData,mStride,mStride2,mSize2); + for (int i = 0; i < mSize2; ++i) { + cblas_zcopy(mSize, (std::complex *) (slice.mData + i * slice.mStride2), slice.mStride, + (std::complex *) (mData + i * mStride2), mStride); + } } break; }