Add cuda dot and unitest.

This commit is contained in:
sunwen
2023-12-08 16:55:03 +08:00
parent 0229a132b2
commit 0082800112
3 changed files with 126 additions and 0 deletions

View File

@@ -771,4 +771,24 @@ TEST_F(Function2D_Cuda_Test, inv) {
{
EXPECT_FLOAT_AE(result1[i], result2[i]);
}
}
TEST_F(Function2D_Cuda_Test, dot) {
auto matrixHost1 = Aurora::Matrix::fromRawData(new float[200000], 1000,200);
auto matrixHost2 = Aurora::Matrix::fromRawData(new float[200000], 1000,200);
for(unsigned int i=0; i<200000;++i)
{
matrixHost1[i] = i;
matrixHost2[i] = i + 1;
}
auto matrixDevice1 = matrixHost1.toDeviceMatrix();
Aurora::CudaMatrix matrixDevice2 = matrixHost2.toDeviceMatrix();
auto result1 = Aurora::dot(matrixHost1, matrixHost2);
auto result2 = Aurora::dot(matrixDevice1, matrixDevice2).toHostMatrix();
std::cout<< result1.getDataSize();
ASSERT_FLOAT_EQ(result1.getDataSize(), result2.getDataSize());
for (size_t i = 0; i < result1.getDataSize(); i++)
{
EXPECT_FLOAT_AE(result1[i], result2[i]);
}
}