add without first average time

This commit is contained in:
chen
2020-07-07 14:36:25 +08:00
parent 01b993a8b7
commit a555727b32
6 changed files with 37 additions and 10 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
rm -rf build rm -rf build
mkdir -p build/intermediates/host mkdir -p build/intermediates/host
cd build/intermediates/host cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE cmake ../../../src -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SKIP_RPATH=TRUE
make make
cd ../../../out cd ../../../out
mv main amexec mv main amexec
+2
View File
@@ -70,6 +70,8 @@ public:
static double printDiffTime(time_t begin, time_t end); static double printDiffTime(time_t begin, time_t end);
static double InferenceTimeAverage(double *x, int len); static double InferenceTimeAverage(double *x, int len);
static double InferenceTimeAverageWithoutFirst(double *x, int len);
}; };
#pragma once #pragma once
BIN
View File
Binary file not shown.
+11 -1
View File
@@ -260,11 +260,21 @@ void ModelProcess::OutputModelResult(std::string& s,std::string& modelName,size_
aclDataType datatype = aclmdlGetOutputDataType(modelDesc_, i); aclDataType datatype = aclmdlGetOutputDataType(modelDesc_, i);
void *dims = nullptr; void *dims = nullptr;
aclmdlIODims *dim = nullptr; aclmdlIODims *dim = nullptr;
aclError ret = aclrtMallocHost(&dims, sizeof(aclmdlIODims)); aclError ret = ACL_ERROR_NONE;
if (!g_isDevice) {
ret = aclrtMallocHost(&dims, sizeof(aclmdlIODims));
if (ret != ACL_ERROR_NONE) { if (ret != ACL_ERROR_NONE) {
ERROR_LOG("aclrtMallocHost failed, ret[%d]", ret); ERROR_LOG("aclrtMallocHost failed, ret[%d]", ret);
return; return;
} }
}
else {
ret = aclrtMalloc(&dims, sizeof(aclmdlIODims), ACL_MEM_MALLOC_NORMAL_ONLY);
if (ret != ACL_ERROR_NONE) {
ERROR_LOG("malloc device buffer failed, ret[%d]", ret);
return;
}
}
dim = reinterpret_cast<aclmdlIODims*>(dims); dim = reinterpret_cast<aclmdlIODims*>(dims);
ret = aclmdlGetOutputDims(modelDesc_, i, dim); ret = aclmdlGetOutputDims(modelDesc_, i, dim);
if (ret != ACL_ERROR_NONE) { if (ret != ACL_ERROR_NONE) {
+4 -1
View File
@@ -151,7 +151,10 @@ Result SampleProcess::Process(vector<string>& params, vector<string>& input_file
} }
double infer_time_ave = Utils::InferenceTimeAverage(inference_time, loop); double infer_time_ave = Utils::InferenceTimeAverage(inference_time, loop);
printf("Inference average time: %f ms\n", infer_time_ave); printf("Inference average time: %f ms\n", infer_time_ave);
if (loop > 1){
double infer_time_ave_without_first = Utils::InferenceTimeAverageWithoutFirst(inference_time, loop);
printf("Inference average time without first time: %f ms\n", infer_time_ave_without_first);
}
processModel.DestroyInput(); processModel.DestroyInput();
// release model input buffer // release model input buffer
+14 -2
View File
@@ -51,6 +51,7 @@ void* Utils::ReadBinFile(std::string fileName, uint32_t &fileSize)
return nullptr; return nullptr;
} }
} }
binFile.read(static_cast<char *>(binFileBufferData), binFileBufferLen); binFile.read(static_cast<char *>(binFileBufferData), binFileBufferLen);
binFile.close(); binFile.close();
fileSize = binFileBufferLen; fileSize = binFileBufferLen;
@@ -180,7 +181,7 @@ double Utils::printDiffTime(time_t begin, time_t end)
{ {
double diffT = difftime(begin, end); double diffT = difftime(begin, end);
printf("The inference time is: %f millisecond\n", 1000*diffT); printf("The inference time is: %f millisecond\n", 1000*diffT);
return diffT*1000; return diffT * 1000;
} }
double Utils::InferenceTimeAverage(double *x, int len) double Utils::InferenceTimeAverage(double *x, int len)
@@ -188,5 +189,16 @@ double Utils::InferenceTimeAverage(double *x, int len)
double sum = 0; double sum = 0;
for (int i = 0; i < len; i++) for (int i = 0; i < len; i++)
sum += x[i]; sum += x[i];
return sum/len; return sum / len;
}
double Utils::InferenceTimeAverageWithoutFirst(double *x, int len)
{
double sum = 0;
for (int i = 0; i < len; i++)
if (i !=0){
sum += x[i];
}
return sum / (len - 1);
} }