This commit is contained in:
luoliang
2022-07-28 15:52:14 +08:00
parent 2ca1fce800
commit bb34c4d99d
10 changed files with 95 additions and 94 deletions

View File

@@ -3,89 +3,94 @@
void PERF_TEST::Test_Abs(aclCxt *acl_context)
{
int val, type;
int val;
int valmax = 8192;
double begin, end, time, acltime;
Common_Test test;
type = CV_32FC1;
for (val = 8; val <= valmax; val *= 2)
vector<int> type{CV_32FC1, CV_32SC1};
for (size_t i = 0; i < type.size(); ++i)
{
int n = 100;
Mat mat_src(val, val, type, Scalar{-2});
Mat mat_dest(val, val, type, Scalar{-4});
Mat mat_dest1(val, val, type, Scalar{-6});
test.PrintLog("Perf test : Function: Abs()", type[i]);
for (val = 8; val <= valmax; val *= 2)
{
int n = 100;
Mat mat_src(val, val, type[i], Scalar{-2});
Mat mat_dest(val, val, type[i], Scalar{-4});
Mat mat_dest1(val, val, type[i], Scalar{-6});
aclMat aclmat_src(val, val, type, mat_src.data, acl_context);
aclMat aclmat_dest(val, val, type, mat_dest.data, acl_context);
aclMat aclmat_src(val, val, type[i], mat_src.data, acl_context);
aclMat aclmat_dest(val, val, type[i], mat_dest.data, acl_context);
begin = static_cast<double>(getTickCount());
while (n--)
mat_dest = abs(mat_src);
end = static_cast<double>(getTickCount());
time = (end - begin) / getTickFrequency();
begin = static_cast<double>(getTickCount());
while (n--)
mat_dest = abs(mat_src);
end = static_cast<double>(getTickCount());
time = (end - begin) / getTickFrequency();
n = 100;
begin = static_cast<double>(getTickCount());
while (n--)
aclmat_dest = abs(aclmat_src);
end = static_cast<double>(getTickCount());
acltime = (end - begin) / getTickFrequency();
n = 100;
begin = static_cast<double>(getTickCount());
while (n--)
aclmat_dest = abs(aclmat_src);
end = static_cast<double>(getTickCount());
acltime = (end - begin) / getTickFrequency();
aclmat_dest.download(mat_dest1);
bool ret = test.Test_Diff(mat_dest, mat_dest1);
ASSERT_TRUE(ret);
if (val < 128)
cout << "Shape: " << val << " x " << val << "\t\t";
else
cout << "Shape: " << val << " x " << val << "\t";
cout << "CpuTimes: " << time << "\tAclTimes: " << acltime << "\tRate: " << time / acltime << endl;
aclmat_dest.download(mat_dest1);
bool ret = test.Test_Diff(mat_dest, mat_dest1);
ASSERT_TRUE(ret);
if (val < 128)
cout << "Shape: " << val << " x " << val << "\t\t";
else
cout << "Shape: " << val << " x " << val << "\t";
cout << "CpuTimes: " << time << "\tAclTimes: " << acltime << "\tRate: " << time / acltime << endl;
}
}
}
void PERF_TEST::Test_Pow(aclCxt *acl_context)
{
int val, type;
int val;
int valmax = 8192;
double begin, end, time, acltime;
Common_Test test;
type = CV_32FC1;
for (val = 8; val <= valmax; val *= 2)
vector<int> type{CV_32FC1};
for (size_t i = 0; i < type.size(); ++i)
{
int n = 100;
int power = test.RandDom_(6);
Mat mat_src(val, val, type);
Mat mat_dest(val, val, type);
Mat mat_dest1(val, val, type);
test.PrintLog("Perf test : Function: Pow()", type[i]);
for (val = 8; val <= valmax; val *= 2)
{
int n = 100;
int power = test.RandDom_(6);
Mat mat_src(val, val, type[i]);
Mat mat_dest(val, val, type[i]);
Mat mat_dest1(val, val, type[i]);
test.SetDataRange(mat_src, 32);
test.SetDataRange(mat_dest, 32);
test.SetDataRange(mat_src, 32);
aclMat aclmat_src(val, val, type, mat_src.data, acl_context);
aclMat aclmat_dest(val, val, type, mat_dest.data, acl_context);
aclMat aclmat_src(val, val, type[i], mat_src.data, acl_context);
aclMat aclmat_dest(val, val, type[i], mat_dest.data, acl_context);
begin = static_cast<double>(getTickCount());
while (n--)
pow(mat_src, power, mat_dest);
end = static_cast<double>(getTickCount());
time = (end - begin) / getTickFrequency();
begin = static_cast<double>(getTickCount());
while (n--)
pow(mat_src, power, mat_dest);
end = static_cast<double>(getTickCount());
time = (end - begin) / getTickFrequency();
n = 100;
begin = static_cast<double>(getTickCount());
while (n--)
pow(aclmat_src, power, aclmat_dest);
end = static_cast<double>(getTickCount());
acltime = (end - begin) / getTickFrequency();
n = 100;
begin = static_cast<double>(getTickCount());
while (n--)
pow(aclmat_src, power, aclmat_dest);
end = static_cast<double>(getTickCount());
acltime = (end - begin) / getTickFrequency();
aclmat_dest.download(mat_dest1);
if (val < 128)
cout << "Shape: " << val << " x " << val << "\t\t";
else
cout << "Shape: " << val << " x " << val << "\t";
cout << "CpuTimes: " << time << "\tAclTimes: " << acltime << "\tRate: " << time / acltime << endl;
aclmat_dest.download(mat_dest1);
if (val < 128)
cout << "Shape: " << val << " x " << val << "\t\t";
else
cout << "Shape: " << val << " x " << val << "\t";
cout << "CpuTimes: " << time << "\tAclTimes: " << acltime << "\tRate: " << time / acltime << endl;
}
}
}
@@ -200,7 +205,7 @@ void PERF_TEST::Test_Divide(aclCxt *acl_context)
Mat mat_dest1(val, val, type);
test.SetDataRange(mat_src1, 32);
test.SetDataRange(mat_src2, 2);
test.SetDataRange(mat_src2, 4);
test.SetDataRange(mat_dest, 32);
aclMat aclmat_src1(val, val, type, mat_src1.data, acl_context);