Add CudaMatrix block,setBlock,setBlockValue unittest.
This commit is contained in:
@@ -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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user