Add cuda matrix function1d function compare set
This commit is contained in:
@@ -173,24 +173,33 @@ TEST_F(Function1D_Cuda_Test, sqrt)
|
||||
|
||||
TEST_F(Function1D_Cuda_Test, abs)
|
||||
{
|
||||
Aurora::Matrix hostMatrix = Aurora::Matrix::fromRawData(new float[8]{1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8}, 2,4);
|
||||
Aurora::Matrix hostMatrix = Aurora::Matrix::fromRawData(new float[10000]{0}, 1,10000);
|
||||
for (size_t i = 0; i < 10000; i++)
|
||||
{
|
||||
hostMatrix[i]=i;
|
||||
}
|
||||
|
||||
Aurora::CudaMatrix deviceMatrix = hostMatrix.toDeviceMatrix();
|
||||
|
||||
auto result1 = Aurora::abs(hostMatrix);
|
||||
auto result2 = Aurora::abs(deviceMatrix).toHostMatrix();
|
||||
EXPECT_EQ(result2.getDataSize(), 8);
|
||||
// EXPECT_EQ(result2.getDataSize(), 8);
|
||||
EXPECT_EQ(result2.getValueType(), Aurora::Normal);
|
||||
|
||||
for(size_t i=0; i<result1.getDataSize(); ++i)
|
||||
{
|
||||
EXPECT_EQ(result1[i], result2[i]);
|
||||
|
||||
}
|
||||
|
||||
hostMatrix = Aurora::Matrix::fromRawData(new float[8]{1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8}, 2,2,1,Aurora::Complex);
|
||||
deviceMatrix = hostMatrix.toDeviceMatrix();
|
||||
result1 = Aurora::abs(hostMatrix);
|
||||
result2 = Aurora::abs(deviceMatrix).toHostMatrix();
|
||||
|
||||
EXPECT_EQ(result2.getDataSize(), 4);
|
||||
EXPECT_EQ(result2.getValueType(), Aurora::Normal);
|
||||
|
||||
for(size_t i=0; i<result1.getDataSize() * result1.getValueType(); ++i)
|
||||
{
|
||||
EXPECT_EQ(result1[i], result2[i]);
|
||||
@@ -294,3 +303,347 @@ TEST_F(Function1D_Cuda_Test, log)
|
||||
EXPECT_FLOAT_AE(result1[i], result2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TEST_F(Function1D_Cuda_Test, compareSet)
|
||||
{
|
||||
Aurora::Matrix A =Aurora::Matrix::fromRawData(new float[9]{0},9,1);
|
||||
Aurora::Matrix B =Aurora::Matrix::fromRawData(new float[9]{0},9,1);
|
||||
for (int i = 0; i < 9; ++i) {
|
||||
A[i]=(float)(i-3);
|
||||
B[i]=(float)(i+2);
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,0,0,Aurora::LT);
|
||||
compareSet(A,0,0,Aurora::LT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
auto A = dA.toHostMatrix();
|
||||
compareSet(dA,0,0,Aurora::GT);
|
||||
compareSet(A,0,0,Aurora::GT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
auto A = dA.toHostMatrix();
|
||||
compareSet(dA,-1,0,Aurora::EQ);
|
||||
compareSet(A,-1,0,Aurora::EQ);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
auto A = dA.toHostMatrix();
|
||||
compareSet(dA,-1,0,Aurora::NE);
|
||||
compareSet(A,-1,0,Aurora::NE);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
auto A = dA.toHostMatrix();
|
||||
compareSet(dA,-1,0,Aurora::NL);
|
||||
compareSet(A,-1,0,Aurora::NL);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
auto A = dA.toHostMatrix();
|
||||
compareSet(dA,-1,0,Aurora::NG);
|
||||
compareSet(A,-1,0,Aurora::NG);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//Function m m v v
|
||||
//NE
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,4,-1,Aurora::NE);
|
||||
compareSet(A,B,4,-1,Aurora::NE);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//EQ
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,4,-1,Aurora::EQ);
|
||||
compareSet(A,B,4,-1,Aurora::EQ);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//GT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,1,-1,Aurora::GT);
|
||||
compareSet(A,B,1,-1,Aurora::GT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::LT);
|
||||
compareSet(A,B,3,-1,Aurora::LT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//NL
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::NL);
|
||||
compareSet(A,B,3,-1,Aurora::NL);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::NG);
|
||||
compareSet(A,B,3,-1,Aurora::NG);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//Function m m v
|
||||
//NE
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::NE);
|
||||
compareSet(A,B,-1,Aurora::NE);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//EQ
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::EQ);
|
||||
compareSet(A,B,-1,Aurora::EQ);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//GT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::GT);
|
||||
compareSet(A,B,-1,Aurora::GT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::LT);
|
||||
compareSet(A,B,-1,Aurora::LT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//NL
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::NL);
|
||||
compareSet(A,B,-1,Aurora::NL);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,-1,Aurora::NG);
|
||||
compareSet(A,B,-1,Aurora::NG);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//Function m m v v
|
||||
//NE
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,4,-1,Aurora::NE);
|
||||
compareSet(A,B,4,-1,Aurora::NE);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//EQ
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,4,-1,Aurora::EQ);
|
||||
compareSet(A,B,4,-1,Aurora::EQ);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//GT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,1,-1,Aurora::GT);
|
||||
compareSet(A,B,1,-1,Aurora::GT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::LT);
|
||||
compareSet(A,B,3,-1,Aurora::LT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//NL
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::NL);
|
||||
compareSet(A,B,3,-1,Aurora::NL);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,dB,3,-1,Aurora::NG);
|
||||
compareSet(A,B,3,-1,Aurora::NG);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//Function m v m
|
||||
//NE
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::NE);
|
||||
compareSet(A,-1,B,Aurora::NE);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//EQ
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::EQ);
|
||||
compareSet(A,-1,B,Aurora::EQ);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//GT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::GT);
|
||||
compareSet(A,-1,B,Aurora::GT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::LT);
|
||||
compareSet(A,-1,B,Aurora::LT);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//NL
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::NL);
|
||||
compareSet(A,-1,B,Aurora::NL);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
//LT
|
||||
{
|
||||
Aurora::CudaMatrix dB = B.toDeviceMatrix();
|
||||
Aurora::CudaMatrix dA = A.toDeviceMatrix();
|
||||
compareSet(dA,-1,dB,Aurora::NG);
|
||||
compareSet(A,-1,B,Aurora::NG);
|
||||
for (size_t i = 0; i < 9; i++)
|
||||
{
|
||||
EXPECT_EQ(dA.getValue(i), A[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user