From 21ee4f45d26efb30552f0f44777eb275c84b6ab6 Mon Sep 17 00:00:00 2001
From: Yifan Zhao <yifanz16@illinois.edu>
Date: Fri, 24 Jan 2020 14:55:42 -0600
Subject: [PATCH] Cleaned part of cava

---
 hpvm/test/hpvm-cava/src/cam-vision-native | Bin 37128 -> 0 bytes
 hpvm/test/hpvm-cava/src/cam_pipe.c        | 144 ----------------------
 hpvm/test/hpvm-cava/src/cam_pipe.h        |   7 --
 hpvm/test/hpvm-cava/src/gem5_harness.h    |  10 --
 hpvm/test/hpvm-cava/src/main.c            |   7 --
 hpvm/test/hpvm-cava/src/rename.sh         |   5 -
 6 files changed, 173 deletions(-)
 delete mode 100755 hpvm/test/hpvm-cava/src/cam-vision-native
 delete mode 100644 hpvm/test/hpvm-cava/src/cam_pipe.c
 delete mode 100644 hpvm/test/hpvm-cava/src/cam_pipe.h
 delete mode 100644 hpvm/test/hpvm-cava/src/gem5_harness.h
 delete mode 100755 hpvm/test/hpvm-cava/src/rename.sh

diff --git a/hpvm/test/hpvm-cava/src/cam-vision-native b/hpvm/test/hpvm-cava/src/cam-vision-native
deleted file mode 100755
index 938e1b1a15d86e71b9b044e594472dad10fd9bc2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 37128
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

diff --git a/hpvm/test/hpvm-cava/src/cam_pipe.c b/hpvm/test/hpvm-cava/src/cam_pipe.c
deleted file mode 100644
index cdeaf39332..0000000000
--- a/hpvm/test/hpvm-cava/src/cam_pipe.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#include "cam_pipe_utility.h"
-#include "dma_interface.h"
-#include "load_cam_model.h"
-#include "pipe_stages.h"
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef DMA_MODE
-#include "gem5_harness.h"
-#endif
-
-// FIXME: Include gem5/dma_interface.cc/h separately
-#ifndef DMA_INTERFACE_V3
-#define DMA_INTERFACE_V3
-#endif // DMA_INTERFACE_V3
-
-///////////////////////////////////////////////////////////////
-// Camera Model Parameters
-///////////////////////////////////////////////////////////////
-
-// Path to the camera model to be used
-char cam_model_path[100];
-
-// White balance index (select white balance from transform file)
-// The first white balance in the file has a wb_index of 1
-// For more information on model format see the readme
-int wb_index = 6;
-
-// Number of control points
-int num_ctrl_pts = 3702;
-
-void load_cam_params_hw(float *host_TsTw, float *host_ctrl_pts,
-                        float *host_weights, float *host_coefs,
-                        float *host_tone_map, float *acc_TsTw,
-                        float *acc_ctrl_pts, float *acc_weights,
-                        float *acc_coefs, float *acc_tone_map) {
-  dmaLoad(acc_TsTw, host_TsTw, 9 * sizeof(float));
-  dmaLoad(acc_ctrl_pts, host_ctrl_pts,
-          num_ctrl_pts * CHAN_SIZE * sizeof(float));
-  dmaLoad(acc_weights, host_weights, num_ctrl_pts * CHAN_SIZE * sizeof(float));
-  dmaLoad(acc_coefs, host_coefs, 4 * CHAN_SIZE * sizeof(float));
-  dmaLoad(acc_tone_map, host_tone_map, 256 * CHAN_SIZE * sizeof(float));
-}
-
-void isp_hw(uint8_t *host_input, uint8_t *host_result, int row_size,
-            int col_size, uint8_t *acc_input, uint8_t *acc_result,
-            float *acc_input_scaled, float *acc_result_scaled, float *acc_TsTw,
-            float *acc_ctrl_pts, float *acc_weights, float *acc_coefs,
-            float *acc_tone_map, float *acc_l2_dist) {
-  dmaLoad(acc_input, host_input,
-          row_size * col_size * CHAN_SIZE * sizeof(uint8_t));
-  scale_fxp(acc_input, row_size, col_size, acc_input_scaled);
-  demosaic_fxp(acc_input_scaled, row_size, col_size, acc_result_scaled);
-  denoise_fxp(acc_result_scaled, row_size, col_size, acc_input_scaled);
-  transform_fxp(acc_input_scaled, row_size, col_size, acc_result_scaled,
-                acc_TsTw);
-  gamut_map_fxp(acc_result_scaled, row_size, col_size, acc_input_scaled,
-                acc_ctrl_pts, acc_weights, acc_coefs, acc_l2_dist);
-  tone_map_fxp(acc_input_scaled, row_size, col_size, acc_tone_map,
-               acc_result_scaled);
-  // tone_map_approx_fxp(acc_input_scaled, row_size, col_size,
-  // acc_result_scaled);
-  descale_fxp(acc_result_scaled, row_size, col_size, acc_result);
-  dmaStore(host_result, acc_result,
-           row_size * col_size * CHAN_SIZE * sizeof(uint8_t));
-}
-
-void cam_pipe(uint8_t *host_input, uint8_t *host_result, int row_size,
-              int col_size) {
-  uint8_t *acc_input, *acc_result;
-  float *acc_input_scaled, *acc_result_scaled;
-  float *host_TsTw, *host_ctrl_pts, *host_weights, *host_coefs, *host_tone_map;
-  float *acc_TsTw, *acc_ctrl_pts, *acc_weights, *acc_coefs, *acc_tone_map,
-      *acc_l2_dist;
-
-  strcat(cam_model_path, "cam_models/NikonD7000/");
-
-  host_TsTw = get_TsTw(cam_model_path, wb_index);
-  float *trans = transpose_mat(host_TsTw, CHAN_SIZE, CHAN_SIZE);
-  free(host_TsTw);
-  host_TsTw = trans;
-  host_ctrl_pts = get_ctrl_pts(cam_model_path, num_ctrl_pts);
-  host_weights = get_weights(cam_model_path, num_ctrl_pts);
-  host_coefs = get_coefs(cam_model_path, num_ctrl_pts);
-  host_tone_map = get_tone_map(cam_model_path);
-
-  acc_input = (uint8_t *)malloc_aligned(sizeof(uint8_t) * row_size * col_size *
-                                        CHAN_SIZE);
-  acc_result = (uint8_t *)malloc_aligned(sizeof(uint8_t) * row_size * col_size *
-                                         CHAN_SIZE);
-  acc_input_scaled =
-      (float *)malloc_aligned(sizeof(float) * row_size * col_size * CHAN_SIZE);
-  acc_result_scaled =
-      (float *)malloc_aligned(sizeof(float) * row_size * col_size * CHAN_SIZE);
-  acc_TsTw = (float *)malloc_aligned(sizeof(float) * 9);
-  acc_ctrl_pts =
-      (float *)malloc_aligned(sizeof(float) * num_ctrl_pts * CHAN_SIZE);
-  acc_weights =
-      (float *)malloc_aligned(sizeof(float) * num_ctrl_pts * CHAN_SIZE);
-  acc_coefs = (float *)malloc_aligned(sizeof(float) * 12);
-  acc_tone_map = (float *)malloc_aligned(sizeof(float) * 256 * CHAN_SIZE);
-  acc_l2_dist = (float *)malloc_aligned(sizeof(float) * num_ctrl_pts);
-
-  // Load camera model parameters for the ISP
-  MAP_ARRAY_TO_ACCEL(ISP, "host_TsTw", host_TsTw, sizeof(float) * 9);
-  MAP_ARRAY_TO_ACCEL(ISP, "host_ctrl_pts", host_ctrl_pts,
-                     sizeof(float) * num_ctrl_pts * CHAN_SIZE);
-  MAP_ARRAY_TO_ACCEL(ISP, "host_weights", host_weights,
-                     sizeof(float) * num_ctrl_pts * CHAN_SIZE);
-  MAP_ARRAY_TO_ACCEL(ISP, "host_coefs", host_coefs,
-                     sizeof(float) * 4 * CHAN_SIZE);
-  MAP_ARRAY_TO_ACCEL(ISP, "host_tone_map", host_tone_map,
-                     sizeof(float) * 256 * CHAN_SIZE);
-  INVOKE_KERNEL(ISP, load_cam_params_hw, host_TsTw, host_ctrl_pts, host_weights,
-                host_coefs, host_tone_map, acc_TsTw, acc_ctrl_pts, acc_weights,
-                acc_coefs, acc_tone_map);
-
-  // Invoke the ISP
-  MAP_ARRAY_TO_ACCEL(ISP, "host_input", host_input,
-                     sizeof(uint8_t) * row_size * col_size * CHAN_SIZE);
-  MAP_ARRAY_TO_ACCEL(ISP, "host_result", host_result,
-                     sizeof(uint8_t) * row_size * col_size * CHAN_SIZE);
-  INVOKE_KERNEL(ISP, isp_hw, host_input, host_result, row_size, col_size,
-                acc_input, acc_result, acc_input_scaled, acc_result_scaled,
-                acc_TsTw, acc_ctrl_pts, acc_weights, acc_coefs, acc_tone_map,
-                acc_l2_dist);
-
-  free(acc_input);
-  free(acc_result);
-  free(acc_input_scaled);
-  free(acc_result_scaled);
-  free(host_TsTw);
-  free(host_ctrl_pts);
-  free(host_weights);
-  free(host_coefs);
-  free(host_tone_map);
-  free(acc_TsTw);
-  free(acc_ctrl_pts);
-  free(acc_weights);
-  free(acc_coefs);
-  free(acc_tone_map);
-  free(acc_l2_dist);
-}
diff --git a/hpvm/test/hpvm-cava/src/cam_pipe.h b/hpvm/test/hpvm-cava/src/cam_pipe.h
deleted file mode 100644
index 83a77e01a6..0000000000
--- a/hpvm/test/hpvm-cava/src/cam_pipe.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _CAM_PIPE_H_
-#define _CAM_PIPE_H_
-
-void cam_pipe(uint8_t *host_input, uint8_t *host_result, int row_size,
-              int col_size);
-
-#endif
diff --git a/hpvm/test/hpvm-cava/src/gem5_harness.h b/hpvm/test/hpvm-cava/src/gem5_harness.h
deleted file mode 100644
index 36859cfe1b..0000000000
--- a/hpvm/test/hpvm-cava/src/gem5_harness.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _GEM5_HARNESS_H_
-#define _GEM5_HARNESS_H_
-
-/* One header to include them all. */
-
-//#include "aladdin_sys_connection.h"
-//#include "aladdin_sys_constants.h"
-#include "dma_interface.h"
-
-#endif
diff --git a/hpvm/test/hpvm-cava/src/main.c b/hpvm/test/hpvm-cava/src/main.c
index d3834165a8..628660f74c 100644
--- a/hpvm/test/hpvm-cava/src/main.c
+++ b/hpvm/test/hpvm-cava/src/main.c
@@ -185,7 +185,6 @@ void descale_fxp(float *input, size_t bytes_input, uint8_t *output,
         int index = (chan * row_size + row) * col_size + col;
         output[index] = min(max(input[index] * 255, 0), 255);
       }
-  __hpvm__return(1, bytes_result);
 }
 
 // Leaf HPVM node function for demosaicing
@@ -453,8 +452,6 @@ void descale_fxp_wrapper(float *input, size_t bytes_input, uint8_t *result,
   __hpvm__bindIn(DescaleNode, 3, 3, 0); // bind bytes_result
   __hpvm__bindIn(DescaleNode, 4, 4, 0); // bind row_size
   __hpvm__bindIn(DescaleNode, 5, 5, 0); // bind col_size
-
-  __hpvm__bindOut(DescaleNode, 0, 0, 0);
 }
 
 void demosaic_fxp_wrapper(float *input, size_t bytes_input, float *result,
@@ -680,10 +677,6 @@ void CamPipeRoot(/*0*/ uint8_t *input, /*1*/ size_t bytes_input,
   __hpvm__bindIn(DsNode, 3, 3, 0);  // bytes_result -> DsNode:bytes_result
   __hpvm__bindIn(DsNode, 28, 4, 0); // row_size -> DsNode:row_size
   __hpvm__bindIn(DsNode, 29, 5, 0); // col_size -> DsNode:col_size
-
-  // Similar to bindIn, but for the output. Output of a node is a struct, and
-  // we consider the fields in increasing ordering.
-  __hpvm__bindOut(DsNode, 0, 0, 0);
 }
 
 int main(int argc, char *argv[]) {
diff --git a/hpvm/test/hpvm-cava/src/rename.sh b/hpvm/test/hpvm-cava/src/rename.sh
deleted file mode 100755
index 3b6faac63a..0000000000
--- a/hpvm/test/hpvm-cava/src/rename.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-for f in *.cc; do 
-    mv -- "$f" "${f%.cc}.c"
-done
-- 
GitLab