diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/approxhpvm_src.cc b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/approxhpvm_src.cc new file mode 100644 index 0000000000000000000000000000000000000000..d8985397705cf19d5533a7e4a376a71a9f130fb0 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/approxhpvm_src.cc @@ -0,0 +1,430 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <cstring> +#include <visc.h> +#include <tensorTypes.h> +#include <tensorUtils.h> + +void var_0_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_convolution(t1, t2, 0, 0, 1, 1); + __visc__return(2, r, (size_t) 0); +} + +void var_1_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_2_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_relu(t1); + __visc__return(2, r, (size_t) 0); +} + +void var_3_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_convolution(t1, t2, 0, 0, 1, 1); + __visc__return(2, r, (size_t) 0); +} + +void var_4_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_5_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_relu(t1); + __visc__return(2, r, (size_t) 0); +} + +void var_6_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); + __visc__return(2, r, (size_t) 0); +} + +void var_7_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_convolution(t1, t2, 0, 0, 1, 1); + __visc__return(2, r, (size_t) 0); +} + +void var_8_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_9_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_relu(t1); + __visc__return(2, r, (size_t) 0); +} + +void var_10_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_convolution(t1, t2, 0, 0, 1, 1); + __visc__return(2, r, (size_t) 0); +} + +void var_11_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_12_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_relu(t1); + __visc__return(2, r, (size_t) 0); +} + +void var_13_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); + __visc__return(2, r, (size_t) 0); +} + +void var_14_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_mul(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_15_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_16_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_relu(t1); + __visc__return(2, r, (size_t) 0); +} + +void var_17_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_mul(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_18_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(2, t1, t2, 0); + + void *r = __visc__tensor_add(t1, t2); + __visc__return(2, r, (size_t) 0); +} + +void var_19_node(void* t1, size_t bytes_t1) { + __visc__hint(visc::CUDNN_TARGET); + __visc__attributes(1, t1, 0); + + void* r = __visc__tensor_softmax(t1); + __visc__return(2, r, (size_t) 0); +} + +void root(void* input, size_t input_bytes, + void* conv2d_1_w, size_t conv2d_1_w_bytes, + void* conv2d_1_b, size_t conv2d_1_b_bytes, + void* conv2d_2_w, size_t conv2d_2_w_bytes, + void* conv2d_2_b, size_t conv2d_2_b_bytes, + void* conv2d_3_w, size_t conv2d_3_w_bytes, + void* conv2d_3_b, size_t conv2d_3_b_bytes, + void* conv2d_4_w, size_t conv2d_4_w_bytes, + void* conv2d_4_b, size_t conv2d_4_b_bytes, + void* dense_1_w, size_t dense_1_w_bytes, + void* dense_1_b, size_t dense_1_b_bytes, + void* dense_2_w, size_t dense_2_w_bytes, + void* dense_2_b, size_t dense_2_b_bytes){ + + + __visc__hint(visc::CPU_TARGET); + __visc__attributes(13, input, conv2d_1_w, conv2d_1_b, conv2d_2_w, conv2d_2_b, conv2d_3_w, conv2d_3_b, conv2d_4_w, conv2d_4_b, dense_1_w, dense_1_b, dense_2_w, dense_2_b, 0); + + + void* var_0 = __visc__createNodeND(0, var_0_node); + + __visc__bindIn(var_0, 0, 0, 0); + __visc__bindIn(var_0, 1, 1, 0); + __visc__bindIn(var_0, 2, 2, 0); + __visc__bindIn(var_0, 3, 3, 0); + + void* var_1 = __visc__createNodeND(0, var_1_node); + + __visc__edge(var_0, var_1, 1, 0, 0, 0); + __visc__edge(var_0, var_1, 1, 1, 1, 0); + __visc__bindIn(var_1, 4, 2, 0); + __visc__bindIn(var_1, 5, 3, 0); + + void* var_2 = __visc__createNodeND(0, var_2_node); + + __visc__edge(var_1, var_2, 1, 0, 0, 0); + __visc__edge(var_1, var_2, 1, 1, 1, 0); + + void* var_3 = __visc__createNodeND(0, var_3_node); + + __visc__edge(var_2, var_3, 1, 0, 0, 0); + __visc__edge(var_2, var_3, 1, 1, 1, 0); + __visc__bindIn(var_3, 6, 2, 0); + __visc__bindIn(var_3, 7, 3, 0); + + void* var_4 = __visc__createNodeND(0, var_4_node); + + __visc__edge(var_3, var_4, 1, 0, 0, 0); + __visc__edge(var_3, var_4, 1, 1, 1, 0); + __visc__bindIn(var_4, 8, 2, 0); + __visc__bindIn(var_4, 9, 3, 0); + + void* var_5 = __visc__createNodeND(0, var_5_node); + + __visc__edge(var_4, var_5, 1, 0, 0, 0); + __visc__edge(var_4, var_5, 1, 1, 1, 0); + + void* var_6 = __visc__createNodeND(0, var_6_node); + + __visc__edge(var_5, var_6, 1, 0, 0, 0); + __visc__edge(var_5, var_6, 1, 1, 1, 0); + + void* var_7 = __visc__createNodeND(0, var_7_node); + + __visc__edge(var_6, var_7, 1, 0, 0, 0); + __visc__edge(var_6, var_7, 1, 1, 1, 0); + __visc__bindIn(var_7, 10, 2, 0); + __visc__bindIn(var_7, 11, 3, 0); + + void* var_8 = __visc__createNodeND(0, var_8_node); + + __visc__edge(var_7, var_8, 1, 0, 0, 0); + __visc__edge(var_7, var_8, 1, 1, 1, 0); + __visc__bindIn(var_8, 12, 2, 0); + __visc__bindIn(var_8, 13, 3, 0); + + void* var_9 = __visc__createNodeND(0, var_9_node); + + __visc__edge(var_8, var_9, 1, 0, 0, 0); + __visc__edge(var_8, var_9, 1, 1, 1, 0); + + void* var_10 = __visc__createNodeND(0, var_10_node); + + __visc__edge(var_9, var_10, 1, 0, 0, 0); + __visc__edge(var_9, var_10, 1, 1, 1, 0); + __visc__bindIn(var_10, 14, 2, 0); + __visc__bindIn(var_10, 15, 3, 0); + + void* var_11 = __visc__createNodeND(0, var_11_node); + + __visc__edge(var_10, var_11, 1, 0, 0, 0); + __visc__edge(var_10, var_11, 1, 1, 1, 0); + __visc__bindIn(var_11, 16, 2, 0); + __visc__bindIn(var_11, 17, 3, 0); + + void* var_12 = __visc__createNodeND(0, var_12_node); + + __visc__edge(var_11, var_12, 1, 0, 0, 0); + __visc__edge(var_11, var_12, 1, 1, 1, 0); + + void* var_13 = __visc__createNodeND(0, var_13_node); + + __visc__edge(var_12, var_13, 1, 0, 0, 0); + __visc__edge(var_12, var_13, 1, 1, 1, 0); + + void* var_14 = __visc__createNodeND(0, var_14_node); + + __visc__edge(var_13, var_14, 1, 0, 0, 0); + __visc__edge(var_13, var_14, 1, 1, 1, 0); + __visc__bindIn(var_14, 18, 2, 0); + __visc__bindIn(var_14, 19, 3, 0); + + void* var_15 = __visc__createNodeND(0, var_15_node); + + __visc__edge(var_14, var_15, 1, 0, 0, 0); + __visc__edge(var_14, var_15, 1, 1, 1, 0); + __visc__bindIn(var_15, 20, 2, 0); + __visc__bindIn(var_15, 21, 3, 0); + + void* var_16 = __visc__createNodeND(0, var_16_node); + + __visc__edge(var_15, var_16, 1, 0, 0, 0); + __visc__edge(var_15, var_16, 1, 1, 1, 0); + + void* var_17 = __visc__createNodeND(0, var_17_node); + + __visc__edge(var_16, var_17, 1, 0, 0, 0); + __visc__edge(var_16, var_17, 1, 1, 1, 0); + __visc__bindIn(var_17, 22, 2, 0); + __visc__bindIn(var_17, 23, 3, 0); + + void* var_18 = __visc__createNodeND(0, var_18_node); + + __visc__edge(var_17, var_18, 1, 0, 0, 0); + __visc__edge(var_17, var_18, 1, 1, 1, 0); + __visc__bindIn(var_18, 24, 2, 0); + __visc__bindIn(var_18, 25, 3, 0); + + void* var_19 = __visc__createNodeND(0, var_19_node); + + __visc__edge(var_18, var_19, 1, 0, 0, 0); + __visc__edge(var_18, var_19, 1, 1, 1, 0); + + __visc__bindOut(var_19, 0, 0, 0); + __visc__bindOut(var_19, 1, 1, 0); + +} + +struct ret_t { + void* tensor; + size_t bytes; +}; + +typedef struct __attribute__((__packed__)) { + void* input; + size_t input_bytes; + void* conv2d_1_w; + size_t conv2d_1_w_bytes; + void* conv2d_1_b; + size_t conv2d_1_b_bytes; + void* conv2d_2_w; + size_t conv2d_2_w_bytes; + void* conv2d_2_b; + size_t conv2d_2_b_bytes; + void* conv2d_3_w; + size_t conv2d_3_w_bytes; + void* conv2d_3_b; + size_t conv2d_3_b_bytes; + void* conv2d_4_w; + size_t conv2d_4_w_bytes; + void* conv2d_4_b; + size_t conv2d_4_b_bytes; + void* dense_1_w; + size_t dense_1_w_bytes; + void* dense_1_b; + size_t dense_1_b_bytes; + void* dense_2_w; + size_t dense_2_w_bytes; + void* dense_2_b; + size_t dense_2_b_bytes; + + struct ret_t r; +} +RootIn; + +int main(){ + +std::string dir_prefix = std::string("hpvm_mio_4/"); +std::string input_path = dir_prefix + std::string("input.bin"); +std::string labels_path = dir_prefix + std::string("labels.bin"); +std::string conv2d_1_w_path = dir_prefix + std::string("conv2d_1_w.bin"); +void* conv2d_1_w = readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); +std::string conv2d_1_b_path = dir_prefix + std::string("conv2d_1_b.bin"); +void* conv2d_1_b = readTrainedWeights(conv2d_1_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_2_w_path = dir_prefix + std::string("conv2d_2_w.bin"); +void* conv2d_2_w = readTrainedWeights(conv2d_2_w_path.c_str(), 0,32,32,3,3); +std::string conv2d_2_b_path = dir_prefix + std::string("conv2d_2_b.bin"); +void* conv2d_2_b = readTrainedWeights(conv2d_2_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_3_w_path = dir_prefix + std::string("conv2d_3_w.bin"); +void* conv2d_3_w = readTrainedWeights(conv2d_3_w_path.c_str(), 0,64,32,3,3); +std::string conv2d_3_b_path = dir_prefix + std::string("conv2d_3_b.bin"); +void* conv2d_3_b = readTrainedWeights(conv2d_3_b_path.c_str(), 0,1,64,1,1); +std::string conv2d_4_w_path = dir_prefix + std::string("conv2d_4_w.bin"); +void* conv2d_4_w = readTrainedWeights(conv2d_4_w_path.c_str(), 0,64,64,3,3); +std::string conv2d_4_b_path = dir_prefix + std::string("conv2d_4_b.bin"); +void* conv2d_4_b = readTrainedWeights(conv2d_4_b_path.c_str(), 0,1,64,1,1); +std::string dense_1_w_path = dir_prefix + std::string("dense_1_w.bin"); +void* dense_1_w = readTrainedWeights(dense_1_w_path.c_str(), 0,1,1,1600,256); +std::string dense_1_b_path = dir_prefix + std::string("dense_1_b.bin"); +void* dense_1_b = readTrainedWeights(dense_1_b_path.c_str(), 0,1,256,1,1); +std::string dense_2_w_path = dir_prefix + std::string("dense_2_w.bin"); +void* dense_2_w = readTrainedWeights(dense_2_w_path.c_str(), 0,1,1,256,5); +std::string dense_2_b_path = dir_prefix + std::string("dense_2_b.bin"); +void* dense_2_b = readTrainedWeights(dense_2_b_path.c_str(), 0,1,5,1,1); +void* input = readTrainedWeights(input_path.c_str(), 0,5000,3,32,32); +uint32_t* labels = readLabels2(labels_path.c_str(),5000); + +__visc__init(); +RootIn* args = static_cast<RootIn*>(malloc(sizeof(RootIn))); + +args->input = input; +args->input_bytes = 0; +args->conv2d_1_w = conv2d_1_w; +args->conv2d_1_w_bytes = 0; +args->conv2d_1_b = conv2d_1_b; +args->conv2d_1_b_bytes = 0; +args->conv2d_2_w = conv2d_2_w; +args->conv2d_2_w_bytes = 0; +args->conv2d_2_b = conv2d_2_b; +args->conv2d_2_b_bytes = 0; +args->conv2d_3_w = conv2d_3_w; +args->conv2d_3_w_bytes = 0; +args->conv2d_3_b = conv2d_3_b; +args->conv2d_3_b_bytes = 0; +args->conv2d_4_w = conv2d_4_w; +args->conv2d_4_w_bytes = 0; +args->conv2d_4_b = conv2d_4_b; +args->conv2d_4_b_bytes = 0; +args->dense_1_w = dense_1_w; +args->dense_1_w_bytes = 0; +args->dense_1_b = dense_1_b; +args->dense_1_b_bytes = 0; +args->dense_2_w = dense_2_w; +args->dense_2_w_bytes = 0; +args->dense_2_b = dense_2_b; +args->dense_2_b_bytes = 0; + +void* dfg = __visc__launch(0, root, (void*) args); + +__visc__wait(dfg); + +void *result = static_cast<RootIn*>(args)->input; +hpvm_request_tensor(result, 0); + +__visc__cleanup(); + computeAccuracy3(labels, result); +return 0; + +} diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/compareDenseWeights.py b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/compareDenseWeights.py new file mode 100644 index 0000000000000000000000000000000000000000..2a323bb65028b253c8070a3b90c1f82be6f78d70 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/compareDenseWeights.py @@ -0,0 +1,42 @@ + + +import numpy as np +import os +import sys + + +if __name__ == "__main__": + + f_path = "dense_1_w_fp16_trans.bin" + + dim1 = 1600 + dim2 = 256 + #dim1 = 256 + #dim2 = 5 + + print (f_path, dim1, dim2) + x = np.fromfile(f_path, dtype='float16') + + x_reshaped = np.reshape(x, (dim1, dim2)) + x_transposed = np.transpose(x_reshaped, (1, 0)) + + print ("old = ", x_transposed) + + f_path = "dense_1_w_fp16.bin" + #dim1 = 256 + #dim2 = 5 + dim1 = 1600 + dim2 = 256 + + print (f_path, dim1, dim2) + + x = np.fromfile(f_path, dtype='float16') + x_reshaped = np.reshape(x, (dim2, dim1)) + + print ("new = ", x_reshaped) + + + + + + diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/compareDenseWeights.py~ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/compareDenseWeights.py~ new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..92fa27c1ac651a1430650a3f1ddbaa5665788302 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e2d4620fdb6e22f8c08e7ca2ad83778b45592d4 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_1_w_fp16_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..1fd5d45e772c3767c86e524af4260554b49f4eaa Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..082b2b57ccd34a11ee353983f6345727e2d561dd Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/comp_files/dense_2_w_fp16_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..39c3fbac7f94a6824736f8b21f184b71b3d45a7b --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b.bin @@ -0,0 +1,2 @@ +αÝ>aŸ¾Ì?N?„œQ¿JÙ%½t‰¼ªl©=™&¼½œ ¿¿^L8?د>r¾:õö¾ νóù¼š¶?B Y?–;Uì>ç—=€ëh?rXö½ï +‹=&ç½Ýˆ™½C#S>¥”½7ü¹>vÉ…>ɇ¿!? \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..9631d745d536c0a56bfdeaafbf4c7c4796f4f275 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_b_fp16.bin @@ -0,0 +1 @@ +î6û´€8D8º/©H¤K-áý½Â9õ0³¸·v¨È§Ö8É:1e7¸,G;³¯X,9¯Ì¬™2 ¬Ð5.4ܸ)8 \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..d01508286ed5fddf05790e261efa168847699efd Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..ad23a9294da4148cf232c429007ae031bc92ffc7 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_1_w_fp16.bin @@ -0,0 +1,8 @@ +«³B7+8n63K·ñµ ›V4¾)*¯É°ú¯¹²¾¶V² ¶À¢™®ñ¬Ï´È²<° ·¨·¡¶õ7L6Ï2904¾/¼2¹:5;×°5·"°x³÷¸p¶{³±g$ë¶ë“³Ð³ˆ®Ú±#¸yµf±” óv6=»º8$¤+7b´Ô¶íµÒ2„ºàºO4»}·±2¶+ƒ2ä6Ï,É2eªª"¯74.u2B±œ¹¶ý1+°ž+å§ð¢T7𹨰ÜS»†´^¬R¼Í±ï5 3Ñ/Æ/h0¶ž%¹0~2(½I4.<!?@»r¬P³3Sµ¬5ø2*± 8·1á567.6µ´0Gµd¸0˜ª‚´©83Ì)j5Š3œ*„44,0-~±u®ó5=8É7ñ0ð0ž¦í²ž´Ò¬{¶µã²¿·è±É·„°µÊ·<¸ù8¼Àÿ<µ‘¶¸*?Ï·g5Å0¶q4µ4 û8Ž;]4€¸_µ±†,¬‡²¶/Ÿ#7³´?4Y¿I´.´È5'4F:Úº§4?4Z².+.8ޝS7€6ì2‰¬“¬ª ³³¬Ñ¢±\/T± 1Φæ+$(1š%Q1#s"U±#.«s¨•®»¯;²ý«d0Z%¦±î,}±é°4¡Å¸Ã1œ4u2„¡ã6™<;í·ºy²®´³®µ5j<09µ´o$óµä´Yd°(4r,Ù¨0´ï¶5µ·¸z±x´^³]4ä4/™±Rµ2¶+2Ü';©²§w®r´ž£Œ.l¬Í0’/7>,¾¤½¼[ª»½;¾+7x:05þ6;<>.Ô3š8Æ4ô¯¡°(ñ©C%á0‹±(‰¢r3.ըͩ,9/œ7£/,°²^´”ªÌ/s¯4Ò¤¢•q²¬²W¨u/L¯y3;%´x3~/$3ܪ¬²Š¦ë´L´ê0I4!5é5Í/Ä/85€¯- 5гg³²¤´§¯€´Ð¬F*]3ê°è-D1{,»¯’°Á°Õ°=®ZªN˜X¨¶²´³•°¢°Œ)%±¬,/:±h-w%·/¯©È¢÷)õª•)Ÿ¥)¨4©^¬•Û°¼¬¥°}ªs!I´¯¿.%ý'H*ž+ž¨n+|®¼¯²ô¹L9Z´¸Ñ³7i#ä;ޏe´ð¬!¸ µ¢µÃ³K¬/0M¨ˆ´½³B0¸›ã,"0š Î)é¸d±5>¥”¸.°ž-)923a)Š2ض–'ܲÕ-°ºh0=.µ*ͬ°²…«0Ô-z8í>ÿ*–=±œºµŠ´š±n±µP¹Ò·-,··›¸·²Í»»25Þ4(b1*2•.ƒ1þ¨ï)B¹K(ذM:n°?¸B0³5;Z¶.ºb·33¸bµ²L¹²D1715616á±$$½2تWµ 8 ¿…:³·<|¶&=´®Ã³ +¥=µX.b§j´¬4/WºM'i¢/,.ô¨ò¦P¢¯(^,Ÿ4><¾8þµ2¹¿·íºS´Y¯š6 +4zµlµž¹Á¸ô+¨)°Ö$€4ʵS´a¶™°©¶(æ±’²D3\±²È.0†,Z«¶/p/û5Ü' +´!1sа¨(€.Â0O¯Ð±×¬p&(g´;¹Xº3¼Ë´Ç= ±<9_;E´(À4ˆ®q«8Þµ¼)ô2š¯(–²ªH/¬0«°p´°y©£d²…«ý¯}²a.8ªV°+-±"7¨d+„©±k¬¬±+¢x¡$«ß,ì #÷¨õ‡/Шø¨º$À–-T®a7' +¬ì'U+o)~,é*¸®=,..y¦"«5¨q°O$ï¯X©\ª9±-Ø|²e-'³;¨¿¥[±L°—²–ªX²L´Ï&´ý³Ý±Ù«Â/Z©«:.x1 + 9©F©u¬†*%E¬œ›¨±E(”¬Ç°á(°ð'Â, +©:¨Î¤~±sX$â,¬P©2ª)²°±Ú°_&ê&(‘-ž2 +°®´÷¶e¶Õ)+ª0$3U/ά¨ª9±8±'1y•o'°X,åµ,¶´Æ²²²i)µj9P6À0ǵà3X¹Á6Ò3‰°+Ó2*1=4™¨³¸D/<.¾¦ª¯'²7¶j±½¶w¸ µ´n@Ú:»°”¶!>ï¸ .¸½í- 8ú¬%4¸/D¦y(f4*0¶¯„+~°ß«'´Ü(Mõ 4ö²A,·A-·8$5´d±:/ ³Qí´¸È-H³Ò¸]¸®4§.v0q³O*Ÿ/ݬô´Õ´ \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..39489675632774a46e0ea704d7d13807b2e4feb5 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b.bin @@ -0,0 +1,2 @@ +„§Ÿ½æ.î=•·?¾Š¥¿vƒ¿ºS¿Óë†»Þ > +Qżøæ¼å—8¿ÂVä».I>Æp𼄃;dd=h䈾Ðé¾N½.¾ÓñÍ=/Ú¾ŒÖl¾×;¾ð4¾6ƒ>cTʾR¶ ¼ê¿¾ô2Í=c_¨¾¾ÚZ¾ \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..4844b63d806a5844d19e30e55ebb872bdad74c03 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_b_fp16.bin @@ -0,0 +1 @@ +ý¬q/þ±)½¼˜º7œ1+¦1§Å¹#ŸI2„§ë,G´Ç°v±p.жg³"°¨±4S¶N †´j.Cµ¡°;° \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..381b72379b85614a79910c9560c6115310da538a Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..1722ded17fea283033fabc5560ef3cf32abbfaf6 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_2_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..43fe41a6edcae03a1a531123940e528a71807300 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b.bin @@ -0,0 +1 @@ +˜Ò½Ê+¥½ò?Š$ù¾méÊ>(>¼½hŠ >qÂB½y²*½‚ì>IÒ¸>»Kˆ?@ ¨¼t\¢?æH¾ •=ùÔý>…œ;½_å—>Ÿfœ=;┿®Œû>›jÞ¾DâÓ»×Á‰¾šU>·`†? Éc>ÈŽ?Õª?Ÿ·/<#&?—?ôðš¾Dy<Hbf¾lò:?ÑwS¾M )>}¾«t ¾Ÿt'?ö¥ú¿´$¾<¥!æ½ œ?Ë¡½c’‹<Za¾>E5“>0Jê>p9J¾†žÁ>ÞWð>nèr>e–'?¹+R¿Gž>kæò;·bÆ¿²àR>˜{ÿ>ãš½ \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..fdc50f0e4011592bbb030496e839ee3c088a859d --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_b_fp16.bin @@ -0,0 +1 @@ +•®)@8É·W6â1ªV©0Ç5¬˜8E¥=@² (ï7Ý©¿4ã,§¼Ü7ó¶ŸžN´¨23<3v<8~!198Ø´É#3³Ø9œ²H19°±<9Õ¿ñ%1¯à<-¨]$ó5š4R7R² 6ƒ7—3=9‘ºò4—3¾—2ü7׬ \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..a82a9e397918217bf37873c59dd92bee713fa9df Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..32dffae528c521e4fb1ea3b43a7585db6ea957e3 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_3_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..bd29ee60df1f0f0b3a199f1f65adb810a2649a3c Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..81fd1a1ec63fd155256a361bb78ee8bee83ce6d5 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_b_fp16.bin @@ -0,0 +1,2 @@ +‰NX¯21ýã«z²¨02$I7·´{®½0o´#´Y5&úµ 4°5 +µè®.h¡‰2k4 ®“¶Œ&O²0Q°h9Ã4U4×49n.Õ5®²ê55_5Œ±!£m§Å´q"±³æµý246vµ®:³€4ä.J(ú°^¸t°R8*' \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..7f6211e76617ee18dac06c9b5449c18183a149de Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae62aa7b5c8e5fb53885171dad086456b31d4ff4 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/conv2d_4_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..fae8736fa3da691229c66e73962cb4f0131c2961 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..7cba7e7cbcb6a01146ab9b28658ad58f7b14aa0f Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_b_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..034b84905ae34893f5b57be77033fd91b388a80b Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..92fa27c1ac651a1430650a3f1ddbaa5665788302 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e2d4620fdb6e22f8c08e7ca2ad83778b45592d4 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_fp16_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..034b84905ae34893f5b57be77033fd91b388a80b Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_1_w_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..2bb9d3e89f7d35a4e66063ec93baab23ef90b86e --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b.bin @@ -0,0 +1 @@ +k"õ;(¿¾òë>™¿JÄ@? \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..018e1e7c82ef683f97972b9e056397cf18c0aa08 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_b_fp16.bin @@ -0,0 +1 @@ +©@¹`7…¸: \ No newline at end of file diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3bce42e01c37928d0cd54493835bcda70529bf2 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..1fd5d45e772c3767c86e524af4260554b49f4eaa Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..082b2b57ccd34a11ee353983f6345727e2d561dd Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_fp16_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_trans.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_trans.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3bce42e01c37928d0cd54493835bcda70529bf2 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/dense_2_w_trans.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input.bin new file mode 100644 index 0000000000000000000000000000000000000000..0abae55bf84ff5dc8e2d1074c97853331fc5d879 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input_fp16.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input_fp16.bin new file mode 100644 index 0000000000000000000000000000000000000000..d8bc62ddbfd9cb594d54777f4f36a65db8288434 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/input_fp16.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/labels.bin b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/labels.bin new file mode 100644 index 0000000000000000000000000000000000000000..effaef8583b30228039ff7f61d9c6be51c020b49 Binary files /dev/null and b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/labels.bin differ diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layer_composition.txt b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layer_composition.txt new file mode 100644 index 0000000000000000000000000000000000000000..54ef6c9f01517d20355681b1d19c8b865daf514c --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layer_composition.txt @@ -0,0 +1,6 @@ +conv add activation +conv add activation pool +conv add activation +conv add activation pool +dense add activation +dense add diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layers.txt b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layers.txt new file mode 100644 index 0000000000000000000000000000000000000000..c0aecb467775babfd4b5c2873abf287905ee11f8 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/layers.txt @@ -0,0 +1,6 @@ +Conv1,5000,3,32,32,32,3,3,3 +Conv2,5000,32,30,30,32,32,3,3 +Conv3,5000,32,14,14,64,32,3,3 +Conv4,5000,64,12,12,64,64,3,3 +FC1,5000,1600,1600,256 +FC2,5000,256,256,5 diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/promise_src.cc b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/promise_src.cc new file mode 100644 index 0000000000000000000000000000000000000000..fd96ab0878269718c58c52115a22b79e2f62ec99 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/promise_src.cc @@ -0,0 +1,93 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> +#include "../../../tensor_runtime/include/tensor_runtime.h" +#include "../../include/utils.h" + +int main(){ + +llvm_hpvm_initTensorRt(0); + +int total_runs = 100; +for (int i = 0 ; i < total_runs; i++){ + + +startMemTracking(); + +int test_input_size = 5000; +int batch_size = 5000; +int batch_count = test_input_size / batch_size; +float final_accuracy = 0.0; + +for(int i = 0; i < batch_count; i++){ + + + +std::string dir_prefix = std::string("hpvm_mio_4/"); +std::string input_path = dir_prefix + std::string("input.bin"); +std::string labels_path = dir_prefix + std::string("labels.bin"); +std::string conv2d_1_w_path = dir_prefix + std::string("conv2d_1_w.bin"); +void* conv2d_1_w = readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); +std::string conv2d_1_b_path = dir_prefix + std::string("conv2d_1_b.bin"); +void* conv2d_1_b = readTrainedWeights(conv2d_1_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_2_w_path = dir_prefix + std::string("conv2d_2_w.bin"); +void* conv2d_2_w = readTrainedWeights(conv2d_2_w_path.c_str(), 0,32,32,3,3); +std::string conv2d_2_b_path = dir_prefix + std::string("conv2d_2_b.bin"); +void* conv2d_2_b = readTrainedWeights(conv2d_2_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_3_w_path = dir_prefix + std::string("conv2d_3_w.bin"); +void* conv2d_3_w = readTrainedWeights(conv2d_3_w_path.c_str(), 0,64,32,3,3); +std::string conv2d_3_b_path = dir_prefix + std::string("conv2d_3_b.bin"); +void* conv2d_3_b = readTrainedWeights(conv2d_3_b_path.c_str(), 0,1,64,1,1); +std::string conv2d_4_w_path = dir_prefix + std::string("conv2d_4_w.bin"); +void* conv2d_4_w = readTrainedWeights(conv2d_4_w_path.c_str(), 0,64,64,3,3); +std::string conv2d_4_b_path = dir_prefix + std::string("conv2d_4_b.bin"); +void* conv2d_4_b = readTrainedWeights(conv2d_4_b_path.c_str(), 0,1,64,1,1); +std::string dense_1_w_path = dir_prefix + std::string("dense_1_w.bin"); +void* dense_1_w = readTrainedWeights(dense_1_w_path.c_str(), 0,1,1,1600,256); +std::string dense_1_b_path = dir_prefix + std::string("dense_1_b.bin"); +void* dense_1_b = readTrainedWeights(dense_1_b_path.c_str(), 0,1,256,1,1); +std::string dense_2_w_path = dir_prefix + std::string("dense_2_w.bin"); +void* dense_2_w = readTrainedWeights(dense_2_w_path.c_str(), 0,1,1,256,5); +std::string dense_2_b_path = dir_prefix + std::string("dense_2_b.bin"); +void* dense_2_b = readTrainedWeights(dense_2_b_path.c_str(), 0,1,5,1,1); + + +int start = i * batch_size; +int end = (i + 1) * batch_size; + +void* input = readInputBatch(input_path.c_str(),0,start,end,3,32,32); + +void* var_0 = ConvLayer_PROMISE(input, -2.682209e-07, 1.0000002, conv2d_1_w, -1.9097954802513122, 1.849404644250894, conv2d_1_b, -1.4970889, 0.90984344, 0, 0, 1, 1, -1, 0, 1, 0.0, 1.9360680677890976, 9); +void* var_1 = ConvLayer_PROMISE(var_0, 0.0, 1.9360680677890976, conv2d_2_w, -0.6551046761870384, 0.5357062590122245, conv2d_2_b, -1.2897198, 0.25627556, 0, 0, 1, 1, 0, 2, 1, 0.0, 3.61756298995042, 9); +void* var_2 = ConvLayer_PROMISE(var_1, 0.0, 3.61756298995042, conv2d_3_w, -0.479531730890274, 0.38338643845919407, conv2d_3_b, -1.9581897, 1.2684464, 0, 0, 1, 1, -1, 0, 1, 0.0, 4.717274737834942, 9); +void* var_3 = ConvLayer_PROMISE(var_2, 0.0, 4.717274737834942, conv2d_4_w, -0.37545250764489174, 0.3687883540093907, conv2d_4_b, -0.5458527, 0.6755934, 0, 0, 1, 1, 0, 2, 1, 0.0, 6.558154335499082, 9); +void* var_4 = FCLayer_PROMISE(var_3, 0.0, 6.558154335499082, dense_1_w, -0.19869577795267107, 0.2030584679543994, dense_1_b, -0.1697124, 0.22991186, 1, 0.0, 8.8694415378571, 9); +void* var_5 = FCLayer_PROMISE(var_4, 0.0, 8.8694415378571, dense_2_w, -0.38784850630164147, 0.387768742352725, dense_2_b, -0.65646386, 0.75299513, -1, -23.875294536590577, 35.08045856094383, 9); +void* var_6 = tensorSoftmax(var_5); + +uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); + +float accuracy = computeAccuracy3(labels, var_6); +final_accuracy += accuracy; +freeBatchMemory(); + +} + +final_accuracy = final_accuracy / batch_count; +dumpFinalAccuracy(final_accuracy); + + +} + +dumpExecutionAccuracies(); + +llvm_hpvm_cleanupTensorRt(); + +return 0; + +} diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py new file mode 100644 index 0000000000000000000000000000000000000000..6c5d33cc8067b2489392d1dc5c30e9a9dd41ab03 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py @@ -0,0 +1,18 @@ + + +import numpy as np +import os +import sys + + +if __name__ == "__main__": + + f_path = "input.bin" + + x = np.fromfile(f_path, dtype='float32') + + print (x, np.min(x), np.max(x)) + + + + diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py~ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py~ new file mode 100644 index 0000000000000000000000000000000000000000..2a323bb65028b253c8070a3b90c1f82be6f78d70 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/readInput.py~ @@ -0,0 +1,42 @@ + + +import numpy as np +import os +import sys + + +if __name__ == "__main__": + + f_path = "dense_1_w_fp16_trans.bin" + + dim1 = 1600 + dim2 = 256 + #dim1 = 256 + #dim2 = 5 + + print (f_path, dim1, dim2) + x = np.fromfile(f_path, dtype='float16') + + x_reshaped = np.reshape(x, (dim1, dim2)) + x_transposed = np.transpose(x_reshaped, (1, 0)) + + print ("old = ", x_transposed) + + f_path = "dense_1_w_fp16.bin" + #dim1 = 256 + #dim2 = 5 + dim1 = 1600 + dim2 = 256 + + print (f_path, dim1, dim2) + + x = np.fromfile(f_path, dtype='float16') + x_reshaped = np.reshape(x, (dim2, dim1)) + + print ("new = ", x_reshaped) + + + + + + diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/src.cc b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/src.cc new file mode 100644 index 0000000000000000000000000000000000000000..332d9903e02fa5a218a3117947e9dbf955d07d10 --- /dev/null +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/miniera-hpvm/data/weights/src.cc @@ -0,0 +1,98 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> +#include "../../tensor_runtime/include/tensor_runtime.h" +#include "../include/utils.h" + +int main(){ + +llvm_hpvm_initTensorRt(0); + + +std::string dir_prefix = std::string("hpvm_mio_4/"); +std::string input_path = dir_prefix + std::string("input.bin"); +std::string labels_path = dir_prefix + std::string("labels.bin"); +std::string conv2d_1_w_path = dir_prefix + std::string("conv2d_1_w.bin"); +void* conv2d_1_w = readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); +std::string conv2d_1_b_path = dir_prefix + std::string("conv2d_1_b.bin"); +void* conv2d_1_b = readTrainedWeights(conv2d_1_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_2_w_path = dir_prefix + std::string("conv2d_2_w.bin"); +void* conv2d_2_w = readTrainedWeights(conv2d_2_w_path.c_str(), 0,32,32,3,3); +std::string conv2d_2_b_path = dir_prefix + std::string("conv2d_2_b.bin"); +void* conv2d_2_b = readTrainedWeights(conv2d_2_b_path.c_str(), 0,1,32,1,1); +std::string conv2d_3_w_path = dir_prefix + std::string("conv2d_3_w.bin"); +void* conv2d_3_w = readTrainedWeights(conv2d_3_w_path.c_str(), 0,64,32,3,3); +std::string conv2d_3_b_path = dir_prefix + std::string("conv2d_3_b.bin"); +void* conv2d_3_b = readTrainedWeights(conv2d_3_b_path.c_str(), 0,1,64,1,1); +std::string conv2d_4_w_path = dir_prefix + std::string("conv2d_4_w.bin"); +void* conv2d_4_w = readTrainedWeights(conv2d_4_w_path.c_str(), 0,64,64,3,3); +std::string conv2d_4_b_path = dir_prefix + std::string("conv2d_4_b.bin"); +void* conv2d_4_b = readTrainedWeights(conv2d_4_b_path.c_str(), 0,1,64,1,1); +std::string dense_1_w_path = dir_prefix + std::string("dense_1_w.bin"); +void* dense_1_w = readTrainedWeights(dense_1_w_path.c_str(), 0,1,1,1600,256); +std::string dense_1_b_path = dir_prefix + std::string("dense_1_b.bin"); +void* dense_1_b = readTrainedWeights(dense_1_b_path.c_str(), 0,1,256,1,1); +std::string dense_2_w_path = dir_prefix + std::string("dense_2_w.bin"); +void* dense_2_w = readTrainedWeights(dense_2_w_path.c_str(), 0,1,1,256,5); +std::string dense_2_b_path = dir_prefix + std::string("dense_2_b.bin"); +void* dense_2_b = readTrainedWeights(dense_2_b_path.c_str(), 0,1,5,1,1); + + + +startMemTracking(); + +int test_input_size = 5000; +int batch_size = 5000; +int batch_count = test_input_size / batch_size; +float final_accuracy = 0.0; + +for(int i = 0; i < batch_count; i++){ + +int start = i * batch_size; +int end = (i + 1) * batch_size; + +void* input = readInputBatch(input_path.c_str(),0,start,end,3,32,32); + +void* var_0 = tensorConvolution(input, conv2d_1_w, 0, 0, 1, 1, 1, 1); +void* var_1 = tensorAdd(var_0, conv2d_1_b); +void* var_2 = tensorRelu(var_1); +void* var_3 = tensorConvolution(var_2, conv2d_2_w, 0, 0, 1, 1, 1, 1); +void* var_4 = tensorAdd(var_3, conv2d_2_b); +void* var_5 = tensorRelu(var_4); +void* var_6 = tensorPooling(var_5,0,2,2,0,0,2,2); +void* var_8 = tensorConvolution(var_6, conv2d_3_w, 0, 0, 1, 1, 1, 1); +void* var_9 = tensorAdd(var_8, conv2d_3_b); +void* var_10 = tensorRelu(var_9); +void* var_11 = tensorConvolution(var_10, conv2d_4_w, 0, 0, 1, 1, 1, 1); +void* var_12 = tensorAdd(var_11, conv2d_4_b); +void* var_13 = tensorRelu(var_12); +void* var_14 = tensorPooling(var_13,0,2,2,0,0,2,2); +void* var_17 = tensorGemmGPU(var_14, dense_1_w); +void* var_18 = tensorAdd(var_17, dense_1_b); +void* var_19 = tensorRelu(var_18); +void* var_21 = tensorGemmGPU(var_19, dense_2_w); +void* var_22 = tensorAdd(var_21, dense_2_b); +void* var_23 = tensorSoftmax(var_22); + +uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); + +float accuracy = computeAccuracy3(labels, var_23); +final_accuracy += accuracy; +freeBatchMemory(); + +} + +final_accuracy = final_accuracy / batch_count; +dumpFinalAccuracy(final_accuracy); + + +llvm_hpvm_cleanupTensorRt(); + +return 0; + +}