From d436311065166e84484726a76e8f5f18adf3e519 Mon Sep 17 00:00:00 2001 From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu> Date: Mon, 16 Sep 2019 17:17:44 -0500 Subject: [PATCH] Fixing bug in Tensor Data placement --- .../hpvm-tensor-rt/dnn_sources/include/utils.h | 13 ++++++++++++- .../tensor_runtime/include/tensor_runtime.h | 7 ++++++- .../DNN_Benchmarks/common/include/tensorUtils.h | 13 ++++++++++++- 3 files changed, 30 insertions(+), 3 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 30bf817d0d..c086602506 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 4f73c0fdc5..4e7d295524 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 30bf817d0d..c086602506 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; } -- GitLab