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();