diff --git a/llvm/projects/hpvm-tensor-rt/CMakeLists.txt b/llvm/projects/hpvm-tensor-rt/CMakeLists.txt
index d9d4531329ce350dafe84947441ca429db1c9291..43ded68fd1fa7a42116b50b788b5175633061ca0 100644
--- a/llvm/projects/hpvm-tensor-rt/CMakeLists.txt
+++ b/llvm/projects/hpvm-tensor-rt/CMakeLists.txt
@@ -43,6 +43,7 @@ endif()
 
 add_definitions(-DNO_INJECTION)
 add_definitions(-DPROMISE_TUNER_ENABLED)
+add_definitions(-DSIMULATION_MODE=false)
 add_definitions(-DONLINE_PROFILING=false)
 
 
diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_simulation.cu b/llvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_simulation.cu
index b1179b21070c465bd023b171d10e9873632270b1..b26b4203d34fed22065581bd732cb70d48d36e8e 100644
--- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_simulation.cu
+++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_simulation.cu
@@ -974,12 +974,22 @@ void* Autotuner_SampConv(void* input, float i_min, float i_max,
 				 params.skip_rate, params.skip_offset);
     */
 
-    
-    conv_out = tensorConvSampSim2(input, filter,
+
+    if (SIMULATION_MODE){
+      conv_out = tensorConvSampSim2(input, filter,
+				    conv_pad_h, conv_pad_w,
+				    conv_stride_h, conv_stride_w, 1, 1,
+				    params.skip_rate, params.skip_offset, params.interpolation_id);
+    }
+        
+
+    else {
+      conv_out = tensorConvApprox(input, filter,
 				  conv_pad_h, conv_pad_w,
 				  conv_stride_h, conv_stride_w, 1, 1,
-				  params.skip_rate, params.skip_offset, params.interpolation_id);
-
+				  1, 1, params.skip_rate, params.skip_offset);
+    }
+    
     
   }
   else{
@@ -1018,11 +1028,27 @@ void* Autotuner_PerforatedConv(void* input, float i_min, float i_max,
   void* conv_out;
   
   if (!FP16_tuning){
-    conv_out = tensorConvPerfCuda(input, filter,
-				  conv_pad_h, conv_pad_w,
-				  conv_stride_h, conv_stride_w, 1, 1,
-				  params.row, params.col, params.skip_offset);
 
+
+    if (SIMULATION_MODE){
+
+      conv_out = tensorConvPerfCuda(input, filter,
+				    conv_pad_h, conv_pad_w,
+				    conv_stride_h, conv_stride_w, 1, 1,
+				    params.row, params.col, params.skip_offset);
+
+    }
+    else{
+
+      conv_out = tensorConvApprox(input, filter,
+				  conv_pad_h, conv_pad_w,
+				  conv_stride_h, conv_stride_w,
+				  1, 1,
+				  params.row, params.col,
+				  1, params.skip_offset);   
+    }
+    
+    
   }
   else{