Add std, and fix fft, ifft bug for cuda
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -39,7 +39,7 @@ TEST_F(Function2D_Cuda_Test, min)
|
||||
B = Aurora::Matrix::fromRawData(dataB, 4096, 41472);
|
||||
dB = B.toDeviceMatrix();
|
||||
long r,c;
|
||||
|
||||
// column
|
||||
auto ret1 = Aurora::min(B, Aurora::Column,r,c);
|
||||
|
||||
auto ret2 = Aurora::min(dB, Aurora::Column,r,c);
|
||||
@@ -53,7 +53,7 @@ TEST_F(Function2D_Cuda_Test, min)
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
|
||||
|
||||
//row
|
||||
ret1 = Aurora::min(B, Aurora::FunctionDirection::Row,r,c);
|
||||
|
||||
ret2 = Aurora::min(dB, Aurora::FunctionDirection::Row,r,c);
|
||||
@@ -66,6 +66,23 @@ TEST_F(Function2D_Cuda_Test, min)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
|
||||
//ALL
|
||||
long r1,c1;
|
||||
ret1 = Aurora::min(B, Aurora::All,r,c);
|
||||
|
||||
ret2 = Aurora::min(dB, Aurora::All,r1,c1);
|
||||
|
||||
ASSERT_EQ(ret1.getDimSize(0),ret2.getDimSize(0));
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
ASSERT_EQ(r, r1);
|
||||
ASSERT_EQ(c, c1);
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
}
|
||||
// different size speed
|
||||
// Aurora::Matrix Aurora::min(const Aurora::Matrix &aMatrix,
|
||||
@@ -100,6 +117,22 @@ TEST_F(Function2D_Cuda_Test, min)
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
//ALL
|
||||
long r1,c1;
|
||||
ret1 = Aurora::min(B, Aurora::All,r,c);
|
||||
|
||||
ret2 = Aurora::min(dB, Aurora::All,r1,c1);
|
||||
|
||||
ASSERT_EQ(ret1.getDimSize(0),ret2.getDimSize(0));
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
ASSERT_EQ(r, r1);
|
||||
ASSERT_EQ(c, c1);
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
@@ -254,6 +287,22 @@ TEST_F(Function2D_Cuda_Test, max)
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
//ALL
|
||||
long r1,c1;
|
||||
ret1 = Aurora::max(B, Aurora::All,r,c);
|
||||
|
||||
ret2 = Aurora::max(dB, Aurora::All,r1,c1);
|
||||
|
||||
ASSERT_EQ(ret1.getDimSize(0),ret2.getDimSize(0));
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
ASSERT_EQ(r, r1);
|
||||
ASSERT_EQ(c, c1);
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
@@ -296,6 +345,23 @@ TEST_F(Function2D_Cuda_Test, max)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
|
||||
//ALL
|
||||
long r1,c1;
|
||||
ret1 = Aurora::max(B, Aurora::All,r,c);
|
||||
|
||||
ret2 = Aurora::max(dB, Aurora::All,r1,c1);
|
||||
|
||||
ASSERT_EQ(ret1.getDimSize(0),ret2.getDimSize(0));
|
||||
ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1));
|
||||
ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2));
|
||||
ASSERT_EQ(r, r1);
|
||||
ASSERT_EQ(c, c1);
|
||||
|
||||
for (size_t i = 0; i < ret1.getDataSize(); i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<<i;
|
||||
}
|
||||
}
|
||||
// test
|
||||
// Aurora::Matrix Aurora::max(const Aurora::Matrix &aMatrix, float aValue)
|
||||
@@ -907,4 +973,14 @@ TEST_F(Function2D_Cuda_Test, ifft_symmetric) {
|
||||
{
|
||||
EXPECT_FLOAT_AE(result1[i], result2[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(Function2D_Cuda_Test, std){
|
||||
float *dataMA= new float [9]{1, 2, 3, 2, 2, 6, 3, 3, 6};
|
||||
auto A = Aurora::Matrix::fromRawData(dataMA,3,3);
|
||||
auto D= Aurora::std(A.toDeviceMatrix());
|
||||
EXPECT_FLOAT_EQ(1.0, D.getValue(0));
|
||||
EXPECT_FLOAT_EQ(2.3094, fourDecimalRound(D.getValue(1)));
|
||||
EXPECT_FLOAT_EQ(1.7321, fourDecimalRound(D.getValue(2)));
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user