Add cuda immse, sortrows and unitest.

This commit is contained in:
sunwen
2023-12-07 15:03:37 +08:00
parent cdf4777dbe
commit 42ecc66106
3 changed files with 150 additions and 1 deletions

View File

@@ -613,4 +613,36 @@ TEST_F(Function2D_Cuda_Test, sort)
}
}
}
TEST_F(Function2D_Cuda_Test, immse) {
auto matrixHost1 = Aurora::Matrix::fromRawData(Aurora::random(10000), 50,200);
auto matrixHost2 = Aurora::Matrix::fromRawData(Aurora::random(10000), 50,200);
auto matrixDevice1 = matrixHost1.toDeviceMatrix();
auto matrixDevice2 = matrixHost1.toDeviceMatrix();
auto result1 = Aurora::immse(matrixHost1, matrixHost2);
auto result2 = Aurora::immse(matrixDevice1, matrixDevice2);
EXPECT_FLOAT_AE(result1, result2);
}
TEST_F(Function2D_Cuda_Test, sortRows) {
auto matrixHost1 = Aurora::Matrix::fromRawData(Aurora::random(10000), 50,200);
Aurora::Matrix matrixHost2;
auto matrixDevice1 = matrixHost1.toDeviceMatrix();
Aurora::CudaMatrix matrixDevice2;
auto result1 = Aurora::sortrows(matrixHost1, &matrixHost2);
auto result2 = Aurora::sortrows(matrixDevice1, matrixDevice2).toHostMatrix();
auto result3 = matrixHost2;
auto result4 = matrixDevice2.toHostMatrix();
ASSERT_FLOAT_EQ(result1.getDataSize(), result2.getDataSize());
for (size_t i = 0; i < result1.getDataSize(); i++)
{
ASSERT_FLOAT_EQ(result1[i], result2[i]);
}
ASSERT_FLOAT_EQ(result3.getDataSize(), result4.getDataSize());
for (size_t i = 0; i < result3.getDataSize(); i++)
{
ASSERT_FLOAT_EQ(result3[i], result4[i]);
}
}