Add CudaMatrix block,setBlock,setBlockValue unittest.

This commit is contained in:
sunwen
2023-11-15 14:17:21 +08:00
parent aaa5622c89
commit 654dd8e6c5

View File

@@ -185,3 +185,40 @@ TEST_F(CudaMatrix_Test, MatrixMul) {
} }
} }
} }
TEST_F(CudaMatrix_Test, matrixfunction)
{
printf("Test CudaMatrix block(int aDim,int aBeginIndx, int aEndIndex) const\r\n");
{
float *dataA = new float[9]{1,6,9,4,1,0,5,8,1};
float *dataB = new float[3]{1,2,3};
Aurora::CudaMatrix A = Aurora::Matrix::fromRawData(dataA, 3, 3).toDeviceMatrix();
Aurora::CudaMatrix B = Aurora::Matrix::fromRawData(dataB, 1, 3).toDeviceMatrix();
Aurora::Matrix block1 = A.block(0, 1, 2).toHostMatrix();
Aurora::Matrix block2 = A.toHostMatrix().block(0, 1, 2);
for (size_t i = 0; i < block1.getDataSize(); i++)
{
ASSERT_FLOAT_EQ(block1[i], block2[i]);
}
block2 = A.toHostMatrix();
A.setBlockValue(0, 1, 2,-1);
block1 = A.toHostMatrix();
block2.setBlockValue(0, 1, 2,-1);
for (size_t i = 0; i < block1.getDataSize(); i++)
{
ASSERT_FLOAT_EQ(block1[i], block2[i]);
}
Aurora::CudaMatrix C = Aurora::zeros(2,3).toDeviceMatrix();
EXPECT_TRUE(A.setBlock(0, 0, 1, C));
block1 = A.block(0, 0, 1).toHostMatrix();
block2 = C.toHostMatrix();
for(size_t i = 0; i < C.getDataSize(); i++)
{
ASSERT_FLOAT_EQ(block1[i], block2[i]);
}
}
}