From 68905098aa5531dd86117f0fe8fad82393a7173d Mon Sep 17 00:00:00 2001 From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu> Date: Wed, 16 Jan 2019 09:40:49 -0600 Subject: [PATCH] Freeing unused memory + file descriptors --- .../dnn_sources/include/utils.h | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 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 225b75a857..56d3ecf6bd 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h @@ -197,6 +197,8 @@ void* readInputTensor(char* file_name, int data_type, int dim1_size, int dim2_si fseek(file, file_header_size, SEEK_CUR); // Skipping the file header size_t bytes_read = fread(file_data, 1, sizeof(uint8_t) * num_elems, file); + + fclose(file); for (size_t i = 0; i < num_elems; ++i){ tensor_data[i] = (float) file_data[i] / 255.0f; @@ -209,7 +211,7 @@ void* readInputTensor(char* file_name, int data_type, int dim1_size, int dim2_si dim3_size, dim4_size); initTensorData(input, tensor_data, size_in_bytes); - compareValues(input, tensor_data, num_elems); + // compareValues(input, tensor_data, num_elems); return input; } @@ -222,8 +224,8 @@ struct Tensor* readTrainedWeights(char* file_name, int data_type, // FIXIT: Don't assume floating point types int type_size = 4; // NOTE: Assuming floating point tensors - int num_elems = dim1_size * dim2_size * dim3_size * dim4_size; - int size_in_bytes = type_size * dim1_size * dim2_size * dim3_size * dim4_size; + long int num_elems = dim1_size * dim2_size * dim3_size * dim4_size; + long int size_in_bytes = type_size * dim1_size * dim2_size * dim3_size * dim4_size; float* tensor_data = (float*) malloc(sizeof(float) * num_elems); int file_header_size = 0; @@ -236,15 +238,17 @@ struct Tensor* readTrainedWeights(char* file_name, int data_type, fseek(file, file_header_size, SEEK_CUR); // Skipping the file header size_t bytes_read = fread(tensor_data, 1, size_in_bytes, file); - //for(unsigned i = 0 ; i < 40; i++){ - // printf("tensor_data[%d] = %f \n", i, tensor_data[i]); - //} + printf("size in bytes = %lu, bytes read = %lu \n", size_in_bytes, bytes_read); + + fclose(file); + struct Tensor* weights = (struct Tensor*) create4DTensor(data_type, nchw, dim1_size, dim2_size, dim3_size, dim4_size); initTensorData(weights, tensor_data, size_in_bytes); - compareValues(weights, tensor_data, num_elems); + //compareValues(weights, tensor_data, num_elems); + free(tensor_data); return weights; } @@ -265,6 +269,8 @@ uint8_t* readLabels(char* labels_file, int num_labels){ printf("labels[%d] = %u \n", i, labels[i]); } + fclose(file); + printf("--labels bytes_read = %d \n", bytes_read); return labels; } @@ -353,9 +359,10 @@ void computeAccuracy2(uint8_t* labels, int num_labels, void* result_ptr, unsigne std::string print_str = ss.str(); fwrite(print_str.c_str(), 1, print_str.length(), fp); - fclose(fp); } - + + fclose(fp); + } -- GitLab