From 98f92667f097c10b9ea504142852254fe1fc5872 Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Thu, 25 Mar 2021 16:23:01 -0500 Subject: [PATCH] Added -c argument to hpvm-c code --- .../alexnet2_cifar10/alexnet2_cifar10.cpp | 30 ++++++++++++++++++- .../alexnet2_cifar10_cudnn.cpp | 30 ++++++++++++++++++- .../alexnet_cifar10/alexnet_cifar10.cpp | 30 ++++++++++++++++++- .../alexnet_cifar10/alexnet_cifar10_cudnn.cpp | 30 ++++++++++++++++++- .../alexnet_imagenet/alexnet_imagenet.cpp | 30 ++++++++++++++++++- .../alexnet_imagenet_cudnn.cpp | 30 ++++++++++++++++++- .../benchmarks/lenet_mnist/lenet_mnist.cpp | 30 ++++++++++++++++++- .../lenet_mnist/lenet_mnist_cudnn.cpp | 30 ++++++++++++++++++- .../mobilenet_cifar10/mobilenet_cifar10.cpp | 30 ++++++++++++++++++- .../mobilenet_cifar10_cudnn.cpp | 30 ++++++++++++++++++- .../resnet18_cifar10/resnet18_cifar10.cpp | 30 ++++++++++++++++++- .../resnet18_cifar10_cudnn.cpp | 30 ++++++++++++++++++- .../resnet50_imagenet/resnet50_imagenet.cpp | 30 ++++++++++++++++++- .../resnet50_imagenet_cudnn.cpp | 30 ++++++++++++++++++- .../vgg16_cifar10/vgg16_cifar10.cpp | 30 ++++++++++++++++++- .../vgg16_cifar10/vgg16_cifar10_cudnn.cpp | 30 ++++++++++++++++++- .../vgg16_cifar100/vgg16_cifar100.cpp | 30 ++++++++++++++++++- .../vgg16_cifar100/vgg16_cifar100_cudnn.cpp | 30 ++++++++++++++++++- .../vgg16_imagenet/vgg16_imagenet.cpp | 30 ++++++++++++++++++- .../vgg16_imagenet/vgg16_imagenet_cudnn.cpp | 30 ++++++++++++++++++- 20 files changed, 580 insertions(+), 20 deletions(-) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10.cpp index 35f8188f78..ebbfec2716 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10.cpp @@ -405,10 +405,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet2_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -488,6 +508,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10_cudnn.cpp index 5bcc5b627b..44b8e0b37d 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet2_cifar10/alexnet2_cifar10_cudnn.cpp @@ -410,10 +410,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet2_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -493,6 +513,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10.cpp index 51e0dd137d..fad49161eb 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10.cpp @@ -356,10 +356,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -430,6 +450,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10_cudnn.cpp index 74c5420fd9..1fe72045f0 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_cifar10/alexnet_cifar10_cudnn.cpp @@ -362,10 +362,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -436,6 +456,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet.cpp index 16bcecf939..dcb8b4faf8 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet.cpp @@ -454,10 +454,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 100, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -548,6 +568,14 @@ int main() { args->dense_3_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet_cudnn.cpp index 5ddd969432..64a781102a 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/alexnet_imagenet/alexnet_imagenet_cudnn.cpp @@ -459,10 +459,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 100, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/alexnet_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -553,6 +573,14 @@ int main() { args->dense_3_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist.cpp index ee81665ec9..63d8bd1cc7 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist.cpp @@ -258,10 +258,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 1000, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/lenet_mnist/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -311,6 +331,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist_cudnn.cpp index eecc7f5d60..558e7effa1 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/lenet_mnist/lenet_mnist_cudnn.cpp @@ -263,10 +263,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 1000, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/lenet_mnist/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -316,6 +336,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10.cpp index 58051e0993..fc7835dedd 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10.cpp @@ -1959,10 +1959,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/mobilenet_cifar10/"; @@ -2780,6 +2800,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10_cudnn.cpp index 482a37d4c4..70083420c2 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/mobilenet_cifar10/mobilenet_cifar10_cudnn.cpp @@ -1964,10 +1964,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/mobilenet_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); @@ -2785,6 +2805,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10.cpp index a254a62570..4aa288f18e 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10.cpp @@ -1294,10 +1294,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/resnet18_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -1526,6 +1546,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10_cudnn.cpp index da1ce91ba3..064834b707 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet18_cifar10/resnet18_cifar10_cudnn.cpp @@ -1225,10 +1225,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/resnet18_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -1458,6 +1478,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet.cpp index a3ece5fede..28447c6b40 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet.cpp @@ -5126,10 +5126,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 25, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/resnet50_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); @@ -6953,6 +6973,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet_cudnn.cpp index 03674b50a5..1f2903754d 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/resnet50_imagenet/resnet50_imagenet_cudnn.cpp @@ -4902,10 +4902,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 50, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/resnet50_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); @@ -6730,6 +6750,14 @@ int main() { args->dense_1_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10.cpp index cad22649fd..3651eb176e 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10.cpp @@ -821,10 +821,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -983,6 +1003,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10_cudnn.cpp index 6625202828..f2f6557614 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar10/vgg16_cifar10_cudnn.cpp @@ -826,10 +826,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_cifar10/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -989,6 +1009,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100.cpp index 54417171fb..2315433e10 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100.cpp @@ -821,10 +821,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_cifar100/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -983,6 +1003,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100_cudnn.cpp index 9f989e3610..6d5957bb53 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_cifar100/vgg16_cifar100_cudnn.cpp @@ -826,10 +826,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 500, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_cifar100/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -988,6 +1008,14 @@ int main() { args->dense_2_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet.cpp index 12f7870a15..7a9534b7fe 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet.cpp @@ -869,10 +869,30 @@ typedef struct __attribute__((__packed__)) { struct ret_t r; } RootIn; +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 10, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -1043,6 +1063,14 @@ int main() { args->dense_3_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + startMemTracking(); #pragma clang loop unroll(disable) for (int i = 0; i < batch_count; i++) { diff --git a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet_cudnn.cpp b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet_cudnn.cpp index 189460c928..40bac1f901 100644 --- a/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet_cudnn.cpp +++ b/hpvm/test/dnn_benchmarks/hpvm-c/benchmarks/vgg16_imagenet/vgg16_imagenet_cudnn.cpp @@ -874,10 +874,30 @@ void write_accuracy(float accuracy) { fout << std::fixed << accuracy; } +void printUsage(const std::string &bin_name) { + std::cerr << "Usage: " << bin_name << " [-c CONF_FILE]\n"; +} + const int batch_size = 25, input_size = 5000, batch_count = input_size / batch_size; -int main() { +int main(int argc, char *argv[]) { + std::string config_path = ""; + int flag; + while ((flag = getopt(argc, argv, "hc:")) != -1) { + switch (flag) { + case 'c': + config_path = std::string(optarg); + break; + case 'h': + printUsage(argv[0]); + return 0; + default: + printUsage(argv[0]); + return 1; + } + } + std::string dir_prefix = std::string(MODEL_PARAMS_DIR) + "/vgg16_imagenet/"; std::string input_path = dir_prefix + std::string("test_input.bin"); std::string labels_path = dir_prefix + std::string("test_labels.bin"); @@ -1049,6 +1069,14 @@ int main() { args->dense_3_b_bytes = 0; __hpvm__init(); + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + + if (config_path != "") { + llvm_hpvm_initializeRuntimeController(config_path.c_str()); + } + float total_accuracy = 0; startMemTracking(); #pragma clang loop unroll(disable) -- GitLab