From 556b7dc919ded448c15f69de883a4fe2157ccd20 Mon Sep 17 00:00:00 2001
From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu>
Date: Fri, 8 Mar 2019 13:52:17 -0600
Subject: [PATCH] dumping aggregate accuracy across batches

---
 .../hpvm-tensor-rt/dnn_sources/include/utils.h   | 16 ++++++++++++++++
 .../dnn_sources/src/vgg16_cifar10.cc             |  8 ++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

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 8004c4a423..7eec73c79b 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 d12060a648..60f09dd5d7 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(); 
 
-- 
GitLab