Cuda matrix compare and value getter and setter

This commit is contained in:
kradchen
2023-11-21 13:13:28 +08:00
parent 4edb2d133d
commit aaf8c1b193
5 changed files with 474 additions and 6 deletions

View File

@@ -425,6 +425,113 @@ TEST_F(CudaMatrix_Test, MatrixNeg){
}
}
TEST_F(CudaMatrix_Test, MatrixCompare){
auto A = Aurora::zeros(1000,1,1);
auto B = Aurora::zeros(1000,1,1);
for (size_t i = 0; i < 1000; i++)
{
A[i] = -1+0.2*i;
}
auto dA= A.toDeviceMatrix();
auto dB= B.toDeviceMatrix();
{
auto R= (A<B);
auto dhR = (dA<dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (A>B);
auto dhR = (dA>dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (A<=B);
auto dhR = (dA<=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (A>=B);
auto dhR = (dA>=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (A==B);
auto dhR = (dA==dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (A!=B);
auto dhR = (dA!=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9<B);
auto dhR = (9<dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9>B);
auto dhR = (9>dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9<=B);
auto dhR = (9<=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9>=B);
auto dhR = (9>=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9==B);
auto dhR = (9==dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
{
auto R= (9!=B);
auto dhR = (9!=dB).toHostMatrix();
for (size_t i = 0; i < 1000; i++)
{
ASSERT_FLOAT_EQ(R[i],dhR[i]);
}
}
}
TEST_F(CudaMatrix_Test, matrixfunction)
{