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 30bf817d0d301f3ceb002c89246c2944d8af3bb2..c086602506e8ed521c7deb99f7121f9d8159190e 100644
--- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h
@@ -350,7 +350,7 @@ struct Tensor* readInputBatch(const char* file_name, int data_type,
 
 
 
-void copyInputBatch(const char* file_name, 
+void* copyInputBatch(const char* file_name, 
 		    int start, int end,
 		    int dim2_size, int dim3_size, int dim4_size,
 		    void* inputTensor_ptr){
@@ -379,6 +379,17 @@ void copyInputBatch(const char* file_name,
     
   initTensorData(inputTensor, tensor_data, size_in_bytes);
   free(tensor_data);
+
+  printf("******NOTE: tensor Dims = %d \n", inputTensor->dims.num_dims);
+  if(inputTensor->host_data == NULL || inputTensor->gpu_data == NULL)
+    printf("ERROR: NULL data pointers \n");
+
+
+  // Chaning Tensor Placement to HOST 
+  changeTensorPlacement(inputTensor, HOST);
+
+
+  return inputTensor;
 }
 
 
diff --git a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_runtime.h b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_runtime.h
index 4f73c0fdc520b3fe0ae5c376354bb9272d74bdc3..4e7d2955243b623b19d57272f76292b64a96645a 100644
--- a/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_runtime.h
+++ b/llvm/projects/hpvm-tensor-rt/tensor_runtime/include/tensor_runtime.h
@@ -7,7 +7,7 @@
 #include <string>
 #include "approx_api.h"
 #include "testing_api.h"
-
+#include "tensor.h"
 #include "rt-controller-api.h"
  
 
@@ -41,6 +41,11 @@ extern "C"{
 		       size_t dim3_size, size_t dim4_size);
   void initTensorData(void* tensor, void* data_ptr, size_t size_in_bytes);
 
+  void changeTensorPlacement(struct Tensor* tensor,
+			     data_location_t data_placement);
+ 
+  void tensorCopy(void* srcTensor, void* dstTensor);
+  
   void freeTensor(void*);
 
   /********** Tensor Operation API ******/
diff --git a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
index 30bf817d0d301f3ceb002c89246c2944d8af3bb2..c086602506e8ed521c7deb99f7121f9d8159190e 100644
--- a/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
+++ b/llvm/test/VISC/DNN_Benchmarks/common/include/tensorUtils.h
@@ -350,7 +350,7 @@ struct Tensor* readInputBatch(const char* file_name, int data_type,
 
 
 
-void copyInputBatch(const char* file_name, 
+void* copyInputBatch(const char* file_name, 
 		    int start, int end,
 		    int dim2_size, int dim3_size, int dim4_size,
 		    void* inputTensor_ptr){
@@ -379,6 +379,17 @@ void copyInputBatch(const char* file_name,
     
   initTensorData(inputTensor, tensor_data, size_in_bytes);
   free(tensor_data);
+
+  printf("******NOTE: tensor Dims = %d \n", inputTensor->dims.num_dims);
+  if(inputTensor->host_data == NULL || inputTensor->gpu_data == NULL)
+    printf("ERROR: NULL data pointers \n");
+
+
+  // Chaning Tensor Placement to HOST 
+  changeTensorPlacement(inputTensor, HOST);
+
+
+  return inputTensor;
 }