diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h index 8004c4a423f132886a455c08502bc58470c6c31e..7eec73c79b37c11a0aad8e9821375c313a4375ee 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h @@ -431,4 +431,20 @@ float computeAccuracy2(uint8_t* labels, int num_labels, void* result_ptr, unsign } +void dumpFinalAccuracy(float accuracy){ + + FILE* fp = fopen("final_accuracy", "w+"); + if(fp != NULL){ + std::ostringstream ss; + ss << std::fixed << accuracy; + std::string print_str = ss.str(); + + fwrite(print_str.c_str(), 1, print_str.length(), fp); + } + + fclose(fp); +} + + + #endif diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10.cc index d12060a648ed5759aed0e283b32b88b92059f19b..60f09dd5d7b91eda7e23e23bc76dbae0f27beaf2 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10.cc +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10.cc @@ -83,6 +83,7 @@ int main(){ int test_input_size = 10000; int batch_size = 1000; int batch_count = test_input_size / batch_size; + float final_accuracy = 0.0; for(int i = 0; i < batch_count; i++){ @@ -144,11 +145,14 @@ int main(){ uint8_t* labels = readLabelsBatch(labels_path.c_str(), start, end); - computeAccuracy2(labels,batch_size,var_60); - + float accuracy = computeAccuracy2(labels,batch_size,var_60); + final_accuracy += accuracy; + freeBatchMemory(); } + final_accuracy = final_accuracy / batch_count; + dumpFinalAccuracy(final_accuracy); llvm_hpvm_cleanupTensorRt();