add without first average time
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
rm -rf build
|
||||
mkdir -p 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
|
||||
cd ../../../out
|
||||
mv main amexec
|
||||
|
||||
@@ -70,6 +70,8 @@ public:
|
||||
static double printDiffTime(time_t begin, time_t end);
|
||||
|
||||
static double InferenceTimeAverage(double *x, int len);
|
||||
|
||||
static double InferenceTimeAverageWithoutFirst(double *x, int len);
|
||||
};
|
||||
|
||||
#pragma once
|
||||
|
||||
Binary file not shown.
@@ -260,11 +260,21 @@ void ModelProcess::OutputModelResult(std::string& s,std::string& modelName,size_
|
||||
aclDataType datatype = aclmdlGetOutputDataType(modelDesc_, i);
|
||||
void *dims = nullptr;
|
||||
aclmdlIODims *dim = nullptr;
|
||||
aclError ret = aclrtMallocHost(&dims, sizeof(aclmdlIODims));
|
||||
if (ret != ACL_ERROR_NONE) {
|
||||
ERROR_LOG("aclrtMallocHost failed, ret[%d]", ret);
|
||||
return;
|
||||
}
|
||||
aclError ret = ACL_ERROR_NONE;
|
||||
if (!g_isDevice) {
|
||||
ret = aclrtMallocHost(&dims, sizeof(aclmdlIODims));
|
||||
if (ret != ACL_ERROR_NONE) {
|
||||
ERROR_LOG("aclrtMallocHost failed, ret[%d]", ret);
|
||||
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);
|
||||
ret = aclmdlGetOutputDims(modelDesc_, i, dim);
|
||||
if (ret != ACL_ERROR_NONE) {
|
||||
|
||||
@@ -64,7 +64,7 @@ Result SampleProcess::InitResource()
|
||||
|
||||
// get run mode
|
||||
aclrtRunMode runMode;
|
||||
ret = aclrtGetRunMode(&runMode);
|
||||
ret = aclrtGetRunMode(&runMode);
|
||||
if (ret != ACL_ERROR_NONE) {
|
||||
ERROR_LOG("acl get run mode failed");
|
||||
return FAILED;
|
||||
@@ -151,7 +151,10 @@ Result SampleProcess::Process(vector<string>& params, vector<string>& input_file
|
||||
}
|
||||
double infer_time_ave = Utils::InferenceTimeAverage(inference_time, loop);
|
||||
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();
|
||||
|
||||
// release model input buffer
|
||||
|
||||
+14
-2
@@ -51,6 +51,7 @@ void* Utils::ReadBinFile(std::string fileName, uint32_t &fileSize)
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
binFile.read(static_cast<char *>(binFileBufferData), binFileBufferLen);
|
||||
binFile.close();
|
||||
fileSize = binFileBufferLen;
|
||||
@@ -180,7 +181,7 @@ double Utils::printDiffTime(time_t begin, time_t end)
|
||||
{
|
||||
double diffT = difftime(begin, end);
|
||||
printf("The inference time is: %f millisecond\n", 1000*diffT);
|
||||
return diffT*1000;
|
||||
return diffT * 1000;
|
||||
}
|
||||
|
||||
double Utils::InferenceTimeAverage(double *x, int len)
|
||||
@@ -188,5 +189,16 @@ double Utils::InferenceTimeAverage(double *x, int len)
|
||||
double sum = 0;
|
||||
for (int i = 0; i < len; 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user