From edebcad2f16d8478bfe4c3f65d3a9e04709e3adb Mon Sep 17 00:00:00 2001
From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu>
Date: Tue, 17 Sep 2019 20:54:35 -0500
Subject: [PATCH] Moving Loop sources to use Int32 Labels

---
 .../dnn_sources/include/utils.h               |   4 +-
 .../dnn_sources/src/lenet_int32.cc            |   2 +-
 .../alexnet2_cifar10_test/labels32.bin        | Bin 0 -> 40000 bytes
 .../alexnet_cifar10_test/labels32.bin         | Bin 0 -> 40000 bytes
 .../benchmarks/alexnet/src/alexnet_loop.cpp   |   9 ++-
 .../benchmarks/alexnet2/src/alexnet2_loop.cpp |   8 +-
 .../common/include/tensorUtils.h              |  70 +++++++++++++-----
 7 files changed, 65 insertions(+), 28 deletions(-)
 create mode 100644 llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin
 create mode 100644 llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin

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 1eb32c2df8..a627f83e6b 100644
--- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h
@@ -412,7 +412,7 @@ uint8_t* readLabels(const char* labels_file, int num_labels){
 
 
 
-uint32_t* readLabels2(const char* labels_file, int num_labels){
+uint32_t* readLabels3(const char* labels_file, int num_labels){
 
   uint32_t* labels = (uint32_t*) malloc(sizeof(uint32_t) * num_labels);
   FILE* file = fopen(labels_file, "rb");
@@ -453,7 +453,7 @@ uint8_t* readLabelsBatch(const char* labels_file, int start, int end){
 }
 
 
-uint32_t* readLabelsBatch2(const char* labels_file, int start, int end){
+uint32_t* readLabelsBatch3(const char* labels_file, int start, int end){
 
   int num_labels = end - start;
   int file_header_size = sizeof(uint32_t) * start;
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc
index 552826eebf..03a4137004 100644
--- a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/lenet_int32.cc
@@ -72,7 +72,7 @@ int main(){
     void* var_17 = tensorRelu(var_16); 
     void* var_18 = tensorSoftmax(var_17); 
 
-    uint32_t* labels = readLabelsBatch2(labels_path.c_str(),start,end); 
+    uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); 
 
     float accuracy = computeAccuracy3(labels, var_18); 
     final_accuracy += accuracy; 
diff --git a/llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin b/llvm/projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/labels32.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f2d1cdf8748dabd80aca7314824ed7fc0002524d
GIT binary patch
literal 40000
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

literal 0
HcmV?d00001

diff --git a/llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin b/llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/labels32.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f2d1cdf8748dabd80aca7314824ed7fc0002524d
GIT binary patch
literal 40000
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

literal 0
HcmV?d00001

diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
index 7b0fb69dd8..ee07bdd8f9 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet/src/alexnet_loop.cpp
@@ -372,7 +372,7 @@ int main(){
   std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/alexnet_cifar10_test/");
 
 
-  std::string labels_path =  dir_prefix + std::string("labels.bin"); 
+  std::string labels_path =  dir_prefix + std::string("labels32.bin"); 
   //uint8_t* labels = readLabels(labels_path.c_str(),10000); 
   std::string conv2d_1_w_path =  dir_prefix + std::string("conv2d_1_w.bin"); 
   void* conv2d_1_w =  readTrainedWeights(conv2d_1_w_path.c_str(), 0,64,3,11,11); 
@@ -436,6 +436,7 @@ int main(){
   std::string input_path =  dir_prefix + std::string("input.bin"); 
   void* input = create4DTensor(0,nchw,batch_size,3,32,32);
 
+  
   startMemTracking();
   for (int i = 0; i < batch_count; i++){
 
@@ -457,11 +458,11 @@ int main(){
     hpvm_request_tensor(result, 0); 
 
 
-    uint8_t* labels = readLabelsBatch(labels_path.c_str(),start,end); 
+    uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); 
 
-    computeAccuracy2(labels, batch_size, result);
+    computeAccuracy3(labels, result);
 
-    llvm_hpvm_invokeRtControl(result, labels);
+    llvm_hpvm_invokeRtControl2(result, labels);
       
     freeBatchMemory();
   }
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
index 71ee98ee9a..4147adabc3 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/alexnet2/src/alexnet2_loop.cpp
@@ -420,7 +420,7 @@ int main(){
 
   std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/alexnet2_cifar10_test/");
   
-  std::string labels_path =  dir_prefix + std::string("labels.bin"); 
+  std::string labels_path =  dir_prefix + std::string("labels32.bin"); 
   std::string conv2d_1_w_path =  dir_prefix + std::string("conv2d_1_w.bin"); 
   void* conv2d_1_w =  readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); 
   std::string conv2d_1_b_path =  dir_prefix + std::string("conv2d_1_b.bin"); 
@@ -513,11 +513,11 @@ int main(){
     hpvm_request_tensor(result, 0); 
 
 
-    uint8_t* labels = readLabelsBatch(labels_path.c_str(),start,end); 
+    uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); 
 
-    computeAccuracy2(labels, batch_size, result);
+    computeAccuracy3(labels, result);
 
-    llvm_hpvm_invokeRtControl(result, labels);
+    llvm_hpvm_invokeRtControl2(result, labels);
       
     freeBatchMemory();
   }
diff --git a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
index 8976f7dc8f..a627f83e6b 100644
--- a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
+++ b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
@@ -412,7 +412,7 @@ uint8_t* readLabels(const char* labels_file, int num_labels){
 
 
 
-uint32_t* readLabels2(const char* labels_file, int num_labels){
+uint32_t* readLabels3(const char* labels_file, int num_labels){
 
   uint32_t* labels = (uint32_t*) malloc(sizeof(uint32_t) * num_labels);
   FILE* file = fopen(labels_file, "rb");
@@ -453,7 +453,7 @@ uint8_t* readLabelsBatch(const char* labels_file, int start, int end){
 }
 
 
-uint32_t* readLabelsBatch2(const char* labels_file, int start, int end){
+uint32_t* readLabelsBatch3(const char* labels_file, int start, int end){
 
   int num_labels = end - start;
   int file_header_size = sizeof(uint32_t) * start;
@@ -518,40 +518,75 @@ void computeAccuracy(const char* labels_file, int num_labels, void* result_ptr){
 
 
 
-float computeAccuracy2(uint8_t* labels, int num_labels,
-		       void* result_ptr, unsigned num_classes = 10){
+// NOTE: batch_size and num_classes are Unused arguments 
+float computeAccuracy2(uint8_t* labels, int batch_size,
+		       void* result_ptr, size_t num_classes = 10){
 
-  unsigned num_zeros = 0;
+  struct Tensor* result = (struct Tensor*) result_ptr;
+  
+  size_t batch_dim = result->dims.dim_sizes[0];
+  num_classes = result->dims.dim_sizes[1];
+  float* data = (float*) result->host_data;
+  int num_errors = 0;
+
+  printf("batch_dim = %lu, channels = %lu \n", batch_dim, num_classes);
+  
+  for(unsigned int i = 0; i < batch_dim; i++){ 
+      
+    int chosen = 0;
+    for (int id = 1; id < num_classes; ++id){
+      if (data[i * num_classes + chosen] < data[i * num_classes + id]) chosen = id;
+    }
+    
+    if(chosen != labels[i])
+      num_errors++;
+
+  }
+
+  float accuracy = ((batch_dim - num_errors) * 1.0 / batch_dim * 1.0) * 100.0;
+  printf("****** Accuracy = %f \n\n", 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);
+
+  return accuracy;    
+}
+
+
+
+float computeAccuracy3(uint32_t* labels, void* result_ptr){
   
   struct Tensor* result = (struct Tensor*) result_ptr;
   
   size_t batch_dim = result->dims.dim_sizes[0];
-  size_t channels = result->dims.dim_sizes[1];
+  size_t num_classes = result->dims.dim_sizes[1];
   float* data = (float*) result->host_data;
   int num_errors = 0;
 
-  printf("batch_dim = %lu, channels = %lu \n", batch_dim, channels);
+  printf("batch_dim = %lu, num_classes = %lu \n", batch_dim, num_classes);
   
-  for(int i = 0; i < num_labels; i++){
+  for(int i = 0; i < batch_dim; i++){
   
     int chosen = 0;
-    //for (int id = 1; id < num_classes; ++id){
-    for (int id = 1; id < channels; ++id){
-      if (data[i * channels + chosen] < data[i * channels + id]) chosen = id;
+    for (int id = 1; id < num_classes; ++id){
+      if (data[i * num_classes + chosen] < data[i * num_classes + id]) chosen = id;
     }
     
-    if(labels[i] == 0)
-      num_zeros++;
-      
     if(chosen != labels[i])
       num_errors++;
-
-    //printf("chosen = %d, label = %d \n", chosen, labels[i]);
   }
 
   float accuracy = ((batch_dim - num_errors) * 1.0 / batch_dim * 1.0) * 100.0;
   printf("****** Accuracy = %f \n\n", accuracy);
-  //printf("****** Zero class labels %d \n", num_zeros);
 
   FILE* fp = fopen("final_accuracy", "w+");
   if(fp != NULL){
@@ -569,6 +604,7 @@ float computeAccuracy2(uint8_t* labels, int num_labels,
 }
 
 
+
 struct ClassProb{
   float prob;
   int index;
-- 
GitLab