From 152c10062ff85a5cb1809fd55302ebf2015fa157 Mon Sep 17 00:00:00 2001
From: hashimsharif <hashim.sharif91@gmail.com>
Date: Fri, 29 Jan 2021 11:04:36 -0600
Subject: [PATCH] Add scripts for running benchmarks and change CMake file

---
 hpvm/test/dnn_benchmarks/CMakeLists.txt       |   10 +
 .../dnn_benchmarks/scripts/final_accuracy     |    1 +
 .../dnn_benchmarks/scripts/profile_data.txt   | 1120 +++++++++++++++++
 hpvm/test/dnn_benchmarks/scripts/run_dnn.py   |  124 ++
 hpvm/test/dnn_benchmarks/scripts/run_dnns.py  |   17 +
 5 files changed, 1272 insertions(+)
 create mode 100644 hpvm/test/dnn_benchmarks/scripts/final_accuracy
 create mode 100644 hpvm/test/dnn_benchmarks/scripts/profile_data.txt
 create mode 100644 hpvm/test/dnn_benchmarks/scripts/run_dnn.py
 create mode 100644 hpvm/test/dnn_benchmarks/scripts/run_dnns.py

diff --git a/hpvm/test/dnn_benchmarks/CMakeLists.txt b/hpvm/test/dnn_benchmarks/CMakeLists.txt
index 887b2d1e6c..84451314e1 100644
--- a/hpvm/test/dnn_benchmarks/CMakeLists.txt
+++ b/hpvm/test/dnn_benchmarks/CMakeLists.txt
@@ -118,10 +118,20 @@ foreach(dir ${entries})
       -quantization-levels-filename=${dir}/data/quant_ranges_rt.txt
       -configuration-inputs-filename=${dir}/data/tuner_confs.txt
   )
+  set(
+      loop_extra_flags_temp
+      -dfg2llvm-wrapperapi
+      -quantization-levels-filename=${dir}/data/quant_ranges_rt.txt
+      -configuration-inputs-filename=${dir}/predictive/temp.txt
+  )
   compile_single_benchmark(
     "test_${dirname}_loop" ${dir}/${dirname}_loop.cpp
     LLVMDFG2LLVM_WrapperAPI "${loop_extra_flags}"
   )
+  compile_single_benchmark(
+    "test_${dirname}_pred" ${dir}/${dirname}_loop.cpp
+    LLVMDFG2LLVM_WrapperAPI "${loop_extra_flags_temp}"
+  )
 endforeach(dir)
 message(STATUS "List of test dnn benchmarks: ${test_compile_targets}")
 add_custom_target(dnn_benchmarks DEPENDS ${test_compile_targets})
diff --git a/hpvm/test/dnn_benchmarks/scripts/final_accuracy b/hpvm/test/dnn_benchmarks/scripts/final_accuracy
new file mode 100644
index 0000000000..702e0e0581
--- /dev/null
+++ b/hpvm/test/dnn_benchmarks/scripts/final_accuracy
@@ -0,0 +1 @@
+76.599998
\ No newline at end of file
diff --git a/hpvm/test/dnn_benchmarks/scripts/profile_data.txt b/hpvm/test/dnn_benchmarks/scripts/profile_data.txt
new file mode 100644
index 0000000000..7f5f42f253
--- /dev/null
+++ b/hpvm/test/dnn_benchmarks/scripts/profile_data.txt
@@ -0,0 +1,1120 @@
+F2H_start1	1611938349.662654
+F2H_end1	1611938349.664021
+H2F_start1	1611938349.754976
+H2F_end1	1611938349.775680
+#Add1	1611938349.775938
+F2H_start2	1611938349.775959
+F2H_end2	1611938349.789948
+H2F_start2	1611938349.797160
+H2F_end2	1611938349.807888
+#tensorHalfAdd_end1	1611938349.807917
+#Tanh1	1611938349.808623
+F2H_start3	1611938349.808642
+F2H_end3	1611938349.822044
+H2F_start3	1611938349.829058
+H2F_end3	1611938349.839266
+#tensorHalfTanh_end1	1611938349.839291
+#Pool1	1611938349.839656
+F2H_start4	1611938349.839678
+F2H_end4	1611938349.852900
+H2F_start4	1611938349.860629
+H2F_end4	1611938349.866091
+#tensorHalfPooling_end1	1611938349.866114	0.000023
+F2H_start5	1611938349.867420
+F2H_end5	1611938349.871927
+H2F_start5	1611938349.993512
+H2F_end5	1611938350.008417
+#Add2	1611938350.009098
+F2H_start6	1611938350.009119
+F2H_end6	1611938350.019457
+H2F_start6	1611938350.024576
+H2F_end6	1611938350.032597
+#tensorHalfAdd_end2	1611938350.032627
+#Tanh2	1611938350.032966
+F2H_start7	1611938350.032988
+F2H_end7	1611938350.043520
+H2F_start7	1611938350.049003
+H2F_end7	1611938350.057062
+#tensorHalfTanh_end2	1611938350.057089
+#Pool2	1611938350.057611
+F2H_start8	1611938350.057631
+F2H_end8	1611938350.067712
+H2F_start8	1611938350.073949
+H2F_end8	1611938350.078059
+#tensorHalfPooling_end2	1611938350.078083	0.000024
+F2H_start9	1611938350.079885
+F2H_end9	1611938350.083718
+H2F_start9	1611938350.156992
+H2F_end9	1611938350.165275
+#Add3	1611938350.165619
+F2H_start10	1611938350.165640
+F2H_end10	1611938350.171302
+H2F_start10	1611938350.176025
+H2F_end10	1611938350.180226
+#tensorHalfAdd_end3	1611938350.180261
+#Tanh3	1611938350.181015
+F2H_start11	1611938350.181036
+F2H_end11	1611938350.186653
+H2F_start11	1611938350.189612
+H2F_end11	1611938350.193579
+#tensorHalfTanh_end3	1611938350.193600
+F2H_start12	1611938350.195909
+F2H_end12	1611938350.202145
+H2F_start12	1611938350.287280
+H2F_end12	1611938350.292754
+#Add4	1611938350.293492
+F2H_start13	1611938350.293513
+F2H_end13	1611938350.298068
+H2F_start13	1611938350.301254
+H2F_end13	1611938350.304203
+#tensorHalfAdd_end4	1611938350.304227
+#Tanh4	1611938350.304396
+F2H_start14	1611938350.304416
+F2H_end14	1611938350.308107
+H2F_start14	1611938350.310322
+H2F_end14	1611938350.313151
+#tensorHalfTanh_end4	1611938350.313174
+F2H_start15	1611938350.315428
+F2H_end15	1611938350.320464
+H2F_start15	1611938350.406219
+H2F_end15	1611938350.412061
+#Add5	1611938350.412203
+F2H_start16	1611938350.412221
+F2H_end16	1611938350.416818
+H2F_start16	1611938350.420033
+H2F_end16	1611938350.422964
+#tensorHalfAdd_end5	1611938350.423010
+#Tanh5	1611938350.423809
+F2H_start17	1611938350.423829
+F2H_end17	1611938350.427831
+H2F_start17	1611938350.430069
+H2F_end17	1611938350.433009
+#tensorHalfTanh_end5	1611938350.433032
+#Pool3	1611938350.433213
+F2H_start18	1611938350.433231
+F2H_end18	1611938350.437035
+H2F_start18	1611938350.440103
+H2F_end18	1611938350.442302
+#tensorHalfPooling_end3	1611938350.442330	0.000028
+#Mul1	1611938350.443205
+F2H_start19	1611938350.443230
+F2H_end19	1611938350.445360
+H2F_start19	1611938350.446779
+H2F_end19	1611938350.447546
+#tensorHalfGemm_end1	1611938350.447566
+#Add6	1611938350.447700
+F2H_start20	1611938350.447717
+F2H_end20	1611938350.448592
+H2F_start20	1611938350.448666
+H2F_end20	1611938350.448915
+#tensorHalfAdd_end6	1611938350.448933
+Softmax1	1611938350.449142
+Softmax_end1	1611938350.449836	0.000695
+F2H_start1	1611938350.485194
+F2H_end1	1611938350.486727
+H2F_start1	1611938350.576544
+H2F_end1	1611938350.596813
+#Add1	1611938350.597354
+F2H_start2	1611938350.597397
+F2H_end2	1611938350.610591
+H2F_start2	1611938350.616762
+H2F_end2	1611938350.626748
+#tensorHalfAdd_end1	1611938350.626772
+#Tanh1	1611938350.627283
+F2H_start3	1611938350.627297
+F2H_end3	1611938350.640264
+H2F_start3	1611938350.646663
+H2F_end3	1611938350.656820
+#tensorHalfTanh_end1	1611938350.656843
+#Pool1	1611938350.657193
+F2H_start4	1611938350.657207
+F2H_end4	1611938350.670041
+H2F_start4	1611938350.677814
+H2F_end4	1611938350.683164
+#tensorHalfPooling_end1	1611938350.683190	0.000025
+F2H_start5	1611938350.683569
+F2H_end5	1611938350.687886
+H2F_start5	1611938350.807744
+H2F_end5	1611938350.823307
+#Add2	1611938350.824090
+F2H_start6	1611938350.824111
+F2H_end6	1611938350.834471
+H2F_start6	1611938350.839453
+H2F_end6	1611938350.847461
+#tensorHalfAdd_end2	1611938350.847488
+#Tanh2	1611938350.848062
+F2H_start7	1611938350.848082
+F2H_end7	1611938350.858169
+H2F_start7	1611938350.863314
+H2F_end7	1611938350.871445
+#tensorHalfTanh_end2	1611938350.871485
+#Pool2	1611938350.872085
+F2H_start8	1611938350.872103
+F2H_end8	1611938350.882289
+H2F_start8	1611938350.888784
+H2F_end8	1611938350.892985
+#tensorHalfPooling_end2	1611938350.893034	0.000048
+F2H_start9	1611938350.893867
+F2H_end9	1611938350.897253
+H2F_start9	1611938350.970749
+H2F_end9	1611938350.978894
+#Add3	1611938350.979198
+F2H_start10	1611938350.979217
+F2H_end10	1611938350.984697
+H2F_start10	1611938350.989364
+H2F_end10	1611938350.993567
+#tensorHalfAdd_end3	1611938350.993610
+#Tanh3	1611938350.994246
+F2H_start11	1611938350.994266
+F2H_end11	1611938350.999704
+H2F_start11	1611938351.002334
+H2F_end11	1611938351.006267
+#tensorHalfTanh_end3	1611938351.006301
+F2H_start12	1611938351.007086
+F2H_end12	1611938351.012843
+H2F_start12	1611938351.097543
+H2F_end12	1611938351.103234
+#Add4	1611938351.103864
+F2H_start13	1611938351.103884
+F2H_end13	1611938351.107865
+H2F_start13	1611938351.111038
+H2F_end13	1611938351.113967
+#tensorHalfAdd_end4	1611938351.113990
+#Tanh4	1611938351.114671
+F2H_start14	1611938351.114691
+F2H_end14	1611938351.118790
+H2F_start14	1611938351.120607
+H2F_end14	1611938351.123489
+#tensorHalfTanh_end4	1611938351.123513
+F2H_start15	1611938351.124045
+F2H_end15	1611938351.128125
+H2F_start15	1611938351.214437
+H2F_end15	1611938351.220617
+#Add5	1611938351.221054
+F2H_start16	1611938351.221072
+F2H_end16	1611938351.225595
+H2F_start16	1611938351.228774
+H2F_end16	1611938351.231704
+#tensorHalfAdd_end5	1611938351.231728
+#Tanh5	1611938351.231941
+F2H_start17	1611938351.231958
+F2H_end17	1611938351.235577
+H2F_start17	1611938351.237443
+H2F_end17	1611938351.240386
+#tensorHalfTanh_end5	1611938351.240421
+#Pool3	1611938351.240659
+F2H_start18	1611938351.240678
+F2H_end18	1611938351.244721
+H2F_start18	1611938351.247734
+H2F_end18	1611938351.249781
+#tensorHalfPooling_end3	1611938351.249811	0.000030
+#Mul1	1611938351.250210
+F2H_start19	1611938351.250229
+F2H_end19	1611938351.251964
+H2F_start19	1611938351.253265
+H2F_end19	1611938351.253742
+#tensorHalfGemm_end1	1611938351.253784
+#Add6	1611938351.254036
+F2H_start20	1611938351.254054
+F2H_end20	1611938351.254969
+H2F_start20	1611938351.255158
+H2F_end20	1611938351.255460
+#tensorHalfAdd_end6	1611938351.255490
+Softmax1	1611938351.256232
+Softmax_end1	1611938351.256873	0.000641
+F2H_start1	1611938351.290624
+F2H_end1	1611938351.292074
+H2F_start1	1611938351.381490
+H2F_end1	1611938351.401497
+#Add1	1611938351.401829
+F2H_start2	1611938351.401848
+F2H_end2	1611938351.415550
+H2F_start2	1611938351.421729
+H2F_end2	1611938351.431757
+#tensorHalfAdd_end1	1611938351.431779
+#Tanh1	1611938351.431950
+F2H_start3	1611938351.431965
+F2H_end3	1611938351.444619
+H2F_start3	1611938351.451057
+H2F_end3	1611938351.461014
+#tensorHalfTanh_end1	1611938351.461038
+#Pool1	1611938351.461345
+F2H_start4	1611938351.461361
+F2H_end4	1611938351.474903
+H2F_start4	1611938351.482695
+H2F_end4	1611938351.487709
+#tensorHalfPooling_end1	1611938351.487735	0.000026
+F2H_start5	1611938351.487921
+F2H_end5	1611938351.492115
+H2F_start5	1611938351.613338
+H2F_end5	1611938351.628588
+#Add2	1611938351.629133
+F2H_start6	1611938351.629153
+F2H_end6	1611938351.639337
+H2F_start6	1611938351.644399
+H2F_end6	1611938351.652452
+#tensorHalfAdd_end2	1611938351.652478
+#Tanh2	1611938351.653173
+F2H_start7	1611938351.653193
+F2H_end7	1611938351.663200
+H2F_start7	1611938351.668464
+H2F_end7	1611938351.676598
+#tensorHalfTanh_end2	1611938351.676625
+#Pool2	1611938351.677309
+F2H_start8	1611938351.677334
+F2H_end8	1611938351.687469
+H2F_start8	1611938351.693808
+H2F_end8	1611938351.698147
+#tensorHalfPooling_end2	1611938351.698184	0.000037
+F2H_start9	1611938351.698627
+F2H_end9	1611938351.701942
+H2F_start9	1611938351.775399
+H2F_end9	1611938351.783146
+#Add3	1611938351.783575
+F2H_start10	1611938351.783595
+F2H_end10	1611938351.789136
+H2F_start10	1611938351.793788
+H2F_end10	1611938351.797963
+#tensorHalfAdd_end3	1611938351.797988
+#Tanh3	1611938351.798656
+F2H_start11	1611938351.798676
+F2H_end11	1611938351.804366
+H2F_start11	1611938351.807029
+H2F_end11	1611938351.810976
+#tensorHalfTanh_end3	1611938351.810998
+F2H_start12	1611938351.811399
+F2H_end12	1611938351.816857
+H2F_start12	1611938351.901931
+H2F_end12	1611938351.907598
+#Add4	1611938351.907740
+F2H_start13	1611938351.907758
+F2H_end13	1611938351.911667
+H2F_start13	1611938351.914823
+H2F_end13	1611938351.917765
+#tensorHalfAdd_end4	1611938351.917791
+#Tanh4	1611938351.918591
+F2H_start14	1611938351.918610
+F2H_end14	1611938351.922636
+H2F_start14	1611938351.924496
+H2F_end14	1611938351.927392
+#tensorHalfTanh_end4	1611938351.927513
+F2H_start15	1611938351.928016
+F2H_end15	1611938351.932221
+H2F_start15	1611938352.018386
+H2F_end15	1611938352.024056
+#Add5	1611938352.024398
+F2H_start16	1611938352.024417
+F2H_end16	1611938352.028572
+H2F_start16	1611938352.031748
+H2F_end16	1611938352.034626
+#tensorHalfAdd_end5	1611938352.034674
+#Tanh5	1611938352.035290
+F2H_start17	1611938352.035307
+F2H_end17	1611938352.039330
+H2F_start17	1611938352.041176
+H2F_end17	1611938352.044059
+#tensorHalfTanh_end5	1611938352.044081
+#Pool3	1611938352.044742
+F2H_start18	1611938352.044761
+F2H_end18	1611938352.048703
+H2F_start18	1611938352.051690
+H2F_end18	1611938352.053985
+#tensorHalfPooling_end3	1611938352.054008	0.000024
+#Mul1	1611938352.054223
+F2H_start19	1611938352.054240
+F2H_end19	1611938352.056067
+H2F_start19	1611938352.057503
+H2F_end19	1611938352.057978
+#tensorHalfGemm_end1	1611938352.057998
+#Add6	1611938352.058723
+F2H_start20	1611938352.058742
+F2H_end20	1611938352.059693
+H2F_start20	1611938352.059785
+H2F_end20	1611938352.060021
+#tensorHalfAdd_end6	1611938352.060037
+Softmax1	1611938352.060194
+Softmax_end1	1611938352.060772	0.000578
+F2H_start1	1611938352.094589
+F2H_end1	1611938352.096058
+H2F_start1	1611938352.185610
+H2F_end1	1611938352.205835
+#Add1	1611938352.206604
+F2H_start2	1611938352.206622
+F2H_end2	1611938352.220037
+H2F_start2	1611938352.226203
+H2F_end2	1611938352.236284
+#tensorHalfAdd_end1	1611938352.236309
+#Tanh1	1611938352.236649
+F2H_start3	1611938352.236664
+F2H_end3	1611938352.249935
+H2F_start3	1611938352.256353
+H2F_end3	1611938352.266317
+#tensorHalfTanh_end1	1611938352.266342
+#Pool1	1611938352.266467
+F2H_start4	1611938352.266481
+F2H_end4	1611938352.279225
+H2F_start4	1611938352.287006
+H2F_end4	1611938352.292231
+#tensorHalfPooling_end1	1611938352.292257	0.000026
+F2H_start5	1611938352.292409
+F2H_end5	1611938352.296280
+H2F_start5	1611938352.416250
+H2F_end5	1611938352.431127
+#Add2	1611938352.431573
+F2H_start6	1611938352.431592
+F2H_end6	1611938352.441338
+H2F_start6	1611938352.446384
+H2F_end6	1611938352.454265
+#tensorHalfAdd_end2	1611938352.454296
+#Tanh2	1611938352.454759
+F2H_start7	1611938352.454779
+F2H_end7	1611938352.464406
+H2F_start7	1611938352.469548
+H2F_end7	1611938352.477445
+#tensorHalfTanh_end2	1611938352.477475
+#Pool2	1611938352.477857
+F2H_start8	1611938352.477876
+F2H_end8	1611938352.487458
+H2F_start8	1611938352.493566
+H2F_end8	1611938352.497919
+#tensorHalfPooling_end2	1611938352.497942	0.000024
+F2H_start9	1611938352.498523
+F2H_end9	1611938352.501684
+H2F_start9	1611938352.574013
+H2F_end9	1611938352.581668
+#Add3	1611938352.581894
+F2H_start10	1611938352.581913
+F2H_end10	1611938352.587396
+H2F_start10	1611938352.592095
+H2F_end10	1611938352.596173
+#tensorHalfAdd_end3	1611938352.596198
+#Tanh3	1611938352.596801
+F2H_start11	1611938352.596821
+F2H_end11	1611938352.601745
+H2F_start11	1611938352.604383
+H2F_end11	1611938352.608376
+#tensorHalfTanh_end3	1611938352.608402
+F2H_start12	1611938352.608959
+F2H_end12	1611938352.614604
+H2F_start12	1611938352.698012
+H2F_end12	1611938352.703441
+#Add4	1611938352.703848
+F2H_start13	1611938352.703866
+F2H_end13	1611938352.707520
+H2F_start13	1611938352.710654
+H2F_end13	1611938352.713519
+#tensorHalfAdd_end4	1611938352.713543
+#Tanh4	1611938352.714030
+F2H_start14	1611938352.714049
+F2H_end14	1611938352.717648
+H2F_start14	1611938352.719438
+H2F_end14	1611938352.722216
+#tensorHalfTanh_end4	1611938352.722250
+F2H_start15	1611938352.722650
+F2H_end15	1611938352.726563
+H2F_start15	1611938352.811437
+H2F_end15	1611938352.816803
+#Add5	1611938352.817322
+F2H_start16	1611938352.817341
+F2H_end16	1611938352.821110
+H2F_start16	1611938352.824226
+H2F_end16	1611938352.827087
+#tensorHalfAdd_end5	1611938352.827110
+#Tanh5	1611938352.827288
+F2H_start17	1611938352.827306
+F2H_end17	1611938352.830786
+H2F_start17	1611938352.832590
+H2F_end17	1611938352.835385
+#tensorHalfTanh_end5	1611938352.835410
+#Pool3	1611938352.836045
+F2H_start18	1611938352.836066
+F2H_end18	1611938352.839785
+H2F_start18	1611938352.842256
+H2F_end18	1611938352.844094
+#tensorHalfPooling_end3	1611938352.844118	0.000024
+#Mul1	1611938352.844601
+F2H_start19	1611938352.844619
+F2H_end19	1611938352.846041
+H2F_start19	1611938352.847461
+H2F_end19	1611938352.847869
+#tensorHalfGemm_end1	1611938352.847890
+#Add6	1611938352.848328
+F2H_start20	1611938352.848346
+F2H_end20	1611938352.849039
+H2F_start20	1611938352.849108
+H2F_end20	1611938352.849352
+#tensorHalfAdd_end6	1611938352.849409
+Softmax1	1611938352.849821
+Softmax_end1	1611938352.850381	0.000560
+F2H_start1	1611938352.884185
+F2H_end1	1611938352.885463
+H2F_start1	1611938352.972225
+H2F_end1	1611938352.991946
+#Add1	1611938352.992606
+F2H_start2	1611938352.992623
+F2H_end2	1611938353.005561
+H2F_start2	1611938353.013032
+H2F_end2	1611938353.023363
+#tensorHalfAdd_end1	1611938353.023386
+#Tanh1	1611938353.024001
+F2H_start3	1611938353.024016
+F2H_end3	1611938353.036623
+H2F_start3	1611938353.043061
+H2F_end3	1611938353.052870
+#tensorHalfTanh_end1	1611938353.052894
+#Pool1	1611938353.053348
+F2H_start4	1611938353.053364
+F2H_end4	1611938353.065810
+H2F_start4	1611938353.073305
+H2F_end4	1611938353.078399
+#tensorHalfPooling_end1	1611938353.078421	0.000022
+F2H_start5	1611938353.078614
+F2H_end5	1611938353.082357
+H2F_start5	1611938353.201024
+H2F_end5	1611938353.215577
+#Add2	1611938353.215898
+F2H_start6	1611938353.215918
+F2H_end6	1611938353.225755
+H2F_start6	1611938353.230767
+H2F_end6	1611938353.238647
+#tensorHalfAdd_end2	1611938353.238674
+#Tanh2	1611938353.238966
+F2H_start7	1611938353.238984
+F2H_end7	1611938353.248730
+H2F_start7	1611938353.253895
+H2F_end7	1611938353.261686
+#tensorHalfTanh_end2	1611938353.261713
+#Pool2	1611938353.262020
+F2H_start8	1611938353.262037
+F2H_end8	1611938353.271811
+H2F_start8	1611938353.277846
+H2F_end8	1611938353.282110
+#tensorHalfPooling_end2	1611938353.282134	0.000024
+F2H_start9	1611938353.282843
+F2H_end9	1611938353.285756
+H2F_start9	1611938353.358011
+H2F_end9	1611938353.365497
+#Add3	1611938353.366054
+F2H_start10	1611938353.366074
+F2H_end10	1611938353.371336
+H2F_start10	1611938353.375997
+H2F_end10	1611938353.380059
+#tensorHalfAdd_end3	1611938353.380085
+#Tanh3	1611938353.380373
+F2H_start11	1611938353.380393
+F2H_end11	1611938353.385809
+H2F_start11	1611938353.388461
+H2F_end11	1611938353.392436
+#tensorHalfTanh_end3	1611938353.392460
+F2H_start12	1611938353.393161
+F2H_end12	1611938353.398422
+H2F_start12	1611938353.482039
+H2F_end12	1611938353.487492
+#Add4	1611938353.487739
+F2H_start13	1611938353.487758
+F2H_end13	1611938353.491503
+H2F_start13	1611938353.494658
+H2F_end13	1611938353.497512
+#tensorHalfAdd_end4	1611938353.497554
+#Tanh4	1611938353.497824
+F2H_start14	1611938353.497843
+F2H_end14	1611938353.501652
+H2F_start14	1611938353.503465
+H2F_end14	1611938353.506267
+#tensorHalfTanh_end4	1611938353.506289
+F2H_start15	1611938353.506596
+F2H_end15	1611938353.510559
+H2F_start15	1611938353.595460
+H2F_end15	1611938353.601109
+#Add5	1611938353.601298
+F2H_start16	1611938353.601317
+F2H_end16	1611938353.605257
+H2F_start16	1611938353.608387
+H2F_end16	1611938353.611190
+#tensorHalfAdd_end5	1611938353.611213
+#Tanh5	1611938353.611506
+F2H_start17	1611938353.611522
+F2H_end17	1611938353.615313
+H2F_start17	1611938353.617131
+H2F_end17	1611938353.619920
+#tensorHalfTanh_end5	1611938353.619943
+#Pool3	1611938353.620245
+F2H_start18	1611938353.620262
+F2H_end18	1611938353.624090
+H2F_start18	1611938353.626616
+H2F_end18	1611938353.628711
+#tensorHalfPooling_end3	1611938353.628737	0.000026
+#Mul1	1611938353.628958
+F2H_start19	1611938353.628978
+F2H_end19	1611938353.630430
+H2F_start19	1611938353.631896
+H2F_end19	1611938353.632318
+#tensorHalfGemm_end1	1611938353.632339
+#Add6	1611938353.632748
+F2H_start20	1611938353.632767
+F2H_end20	1611938353.633563
+H2F_start20	1611938353.633662
+H2F_end20	1611938353.633914
+#tensorHalfAdd_end6	1611938353.633931
+Softmax1	1611938353.634227
+Softmax_end1	1611938353.634790	0.000563
+F2H_start1	1611938353.668159
+F2H_end1	1611938353.669421
+H2F_start1	1611938353.758585
+H2F_end1	1611938353.777899
+#Add1	1611938353.778619
+F2H_start2	1611938353.778636
+F2H_end2	1611938353.791851
+H2F_start2	1611938353.798021
+H2F_end2	1611938353.807839
+#tensorHalfAdd_end1	1611938353.807862
+#Tanh1	1611938353.807973
+F2H_start3	1611938353.807987
+F2H_end3	1611938353.820473
+H2F_start3	1611938353.826874
+H2F_end3	1611938353.836692
+#tensorHalfTanh_end1	1611938353.836715
+#Pool1	1611938353.837357
+F2H_start4	1611938353.837400
+F2H_end4	1611938353.850183
+H2F_start4	1611938353.857887
+H2F_end4	1611938353.862983
+#tensorHalfPooling_end1	1611938353.863008	0.000025
+F2H_start5	1611938353.863453
+F2H_end5	1611938353.867115
+H2F_start5	1611938353.985573
+H2F_end5	1611938354.001042
+#Add2	1611938354.001179
+F2H_start6	1611938354.001198
+F2H_end6	1611938354.011480
+H2F_start6	1611938354.016486
+H2F_end6	1611938354.024376
+#tensorHalfAdd_end2	1611938354.024402
+#Tanh2	1611938354.025131
+F2H_start7	1611938354.025151
+F2H_end7	1611938354.035021
+H2F_start7	1611938354.040204
+H2F_end7	1611938354.048040
+#tensorHalfTanh_end2	1611938354.048067
+#Pool2	1611938354.048237
+F2H_start8	1611938354.048254
+F2H_end8	1611938354.057633
+H2F_start8	1611938354.063564
+H2F_end8	1611938354.067686
+#tensorHalfPooling_end2	1611938354.067721	0.000035
+F2H_start9	1611938354.068339
+F2H_end9	1611938354.071723
+H2F_start9	1611938354.144135
+H2F_end9	1611938354.151786
+#Add3	1611938354.151973
+F2H_start10	1611938354.151993
+F2H_end10	1611938354.156943
+H2F_start10	1611938354.161611
+H2F_end10	1611938354.165654
+#tensorHalfAdd_end3	1611938354.165678
+#Tanh3	1611938354.166399
+F2H_start11	1611938354.166419
+F2H_end11	1611938354.171716
+H2F_start11	1611938354.174363
+H2F_end11	1611938354.178518
+#tensorHalfTanh_end3	1611938354.178546
+F2H_start12	1611938354.179141
+F2H_end12	1611938354.184649
+H2F_start12	1611938354.268166
+H2F_end12	1611938354.273541
+#Add4	1611938354.274340
+F2H_start13	1611938354.274361
+F2H_end13	1611938354.278260
+H2F_start13	1611938354.281447
+H2F_end13	1611938354.284287
+#tensorHalfAdd_end4	1611938354.284310
+#Tanh4	1611938354.284491
+F2H_start14	1611938354.284508
+F2H_end14	1611938354.288306
+H2F_start14	1611938354.290149
+H2F_end14	1611938354.292997
+#tensorHalfTanh_end4	1611938354.293021
+F2H_start15	1611938354.293324
+F2H_end15	1611938354.297734
+H2F_start15	1611938354.382535
+H2F_end15	1611938354.388179
+#Add5	1611938354.388811
+F2H_start16	1611938354.388831
+F2H_end16	1611938354.392735
+H2F_start16	1611938354.395868
+H2F_end16	1611938354.398718
+#tensorHalfAdd_end5	1611938354.398741
+#Tanh5	1611938354.398953
+F2H_start17	1611938354.398970
+F2H_end17	1611938354.402789
+H2F_start17	1611938354.404626
+H2F_end17	1611938354.407422
+#tensorHalfTanh_end5	1611938354.407447
+#Pool3	1611938354.407736
+F2H_start18	1611938354.407754
+F2H_end18	1611938354.411777
+H2F_start18	1611938354.414408
+H2F_end18	1611938354.416419
+#tensorHalfPooling_end3	1611938354.416442	0.000022
+#Mul1	1611938354.417104
+F2H_start19	1611938354.417124
+F2H_end19	1611938354.418638
+H2F_start19	1611938354.420080
+H2F_end19	1611938354.420515
+#tensorHalfGemm_end1	1611938354.420534
+#Add6	1611938354.420906
+F2H_start20	1611938354.420924
+F2H_end20	1611938354.421697
+H2F_start20	1611938354.421767
+H2F_end20	1611938354.422038
+#tensorHalfAdd_end6	1611938354.422054
+Softmax1	1611938354.422383
+Softmax_end1	1611938354.422958	0.000575
+F2H_start1	1611938354.457886
+F2H_end1	1611938354.459208
+H2F_start1	1611938354.547323
+H2F_end1	1611938354.566252
+#Add1	1611938354.566592
+F2H_start2	1611938354.566611
+F2H_end2	1611938354.579609
+H2F_start2	1611938354.586001
+H2F_end2	1611938354.595805
+#tensorHalfAdd_end1	1611938354.595829
+#Tanh1	1611938354.596539
+F2H_start3	1611938354.596554
+F2H_end3	1611938354.609012
+H2F_start3	1611938354.615424
+H2F_end3	1611938354.625247
+#tensorHalfTanh_end1	1611938354.625270
+#Pool1	1611938354.625716
+F2H_start4	1611938354.625734
+F2H_end4	1611938354.638145
+H2F_start4	1611938354.645695
+H2F_end4	1611938354.650683
+#tensorHalfPooling_end1	1611938354.650709	0.000026
+F2H_start5	1611938354.651042
+F2H_end5	1611938354.654868
+H2F_start5	1611938354.774894
+H2F_end5	1611938354.789415
+#Add2	1611938354.790032
+F2H_start6	1611938354.790052
+F2H_end6	1611938354.799854
+H2F_start6	1611938354.804896
+H2F_end6	1611938354.812756
+#tensorHalfAdd_end2	1611938354.812782
+#Tanh2	1611938354.813150
+F2H_start7	1611938354.813168
+F2H_end7	1611938354.822646
+H2F_start7	1611938354.827793
+H2F_end7	1611938354.835565
+#tensorHalfTanh_end2	1611938354.835591
+#Pool2	1611938354.836337
+F2H_start8	1611938354.836357
+F2H_end8	1611938354.846139
+H2F_start8	1611938354.852212
+H2F_end8	1611938354.856475
+#tensorHalfPooling_end2	1611938354.856505	0.000030
+F2H_start9	1611938354.857320
+F2H_end9	1611938354.860692
+H2F_start9	1611938354.933477
+H2F_end9	1611938354.941365
+#Add3	1611938354.941668
+F2H_start10	1611938354.941688
+F2H_end10	1611938354.946988
+H2F_start10	1611938354.951649
+H2F_end10	1611938354.955750
+#tensorHalfAdd_end3	1611938354.955774
+#Tanh3	1611938354.956057
+F2H_start11	1611938354.956074
+F2H_end11	1611938354.961322
+H2F_start11	1611938354.963997
+H2F_end11	1611938354.968085
+#tensorHalfTanh_end3	1611938354.968120
+F2H_start12	1611938354.968379
+F2H_end12	1611938354.973907
+H2F_start12	1611938355.057569
+H2F_end12	1611938355.063082
+#Add4	1611938355.063672
+F2H_start13	1611938355.063692
+F2H_end13	1611938355.067597
+H2F_start13	1611938355.070752
+H2F_end13	1611938355.073596
+#tensorHalfAdd_end4	1611938355.073618
+#Tanh4	1611938355.074301
+F2H_start14	1611938355.074320
+F2H_end14	1611938355.077941
+H2F_start14	1611938355.079778
+H2F_end14	1611938355.082619
+#tensorHalfTanh_end4	1611938355.082643
+F2H_start15	1611938355.082811
+F2H_end15	1611938355.086622
+H2F_start15	1611938355.172202
+H2F_end15	1611938355.177872
+#Add5	1611938355.178115
+F2H_start16	1611938355.178139
+F2H_end16	1611938355.181848
+H2F_start16	1611938355.184999
+H2F_end16	1611938355.187817
+#tensorHalfAdd_end5	1611938355.187841
+#Tanh5	1611938355.188189
+F2H_start17	1611938355.188207
+F2H_end17	1611938355.191816
+H2F_start17	1611938355.193630
+H2F_end17	1611938355.196409
+#tensorHalfTanh_end5	1611938355.196434
+#Pool3	1611938355.196934
+F2H_start18	1611938355.196954
+F2H_end18	1611938355.200620
+H2F_start18	1611938355.203087
+H2F_end18	1611938355.205095
+#tensorHalfPooling_end3	1611938355.205120	0.000024
+#Mul1	1611938355.205618
+F2H_start19	1611938355.205638
+F2H_end19	1611938355.207168
+H2F_start19	1611938355.208623
+H2F_end19	1611938355.209044
+#tensorHalfGemm_end1	1611938355.209063
+#Add6	1611938355.209233
+F2H_start20	1611938355.209249
+F2H_end20	1611938355.210027
+H2F_start20	1611938355.210119
+H2F_end20	1611938355.210384
+#tensorHalfAdd_end6	1611938355.210403
+Softmax1	1611938355.210746
+Softmax_end1	1611938355.211312	0.000566
+F2H_start1	1611938355.246410
+F2H_end1	1611938355.247683
+H2F_start1	1611938355.336431
+H2F_end1	1611938355.355758
+#Add1	1611938355.355956
+F2H_start2	1611938355.355974
+F2H_end2	1611938355.369186
+H2F_start2	1611938355.375467
+H2F_end2	1611938355.385323
+#tensorHalfAdd_end1	1611938355.385347
+#Tanh1	1611938355.386017
+F2H_start3	1611938355.386032
+F2H_end3	1611938355.398981
+H2F_start3	1611938355.405437
+H2F_end3	1611938355.415391
+#tensorHalfTanh_end1	1611938355.415416
+#Pool1	1611938355.415848
+F2H_start4	1611938355.415862
+F2H_end4	1611938355.428661
+H2F_start4	1611938355.436263
+H2F_end4	1611938355.441711
+#tensorHalfPooling_end1	1611938355.441736	0.000026
+F2H_start5	1611938355.442471
+F2H_end5	1611938355.446367
+H2F_start5	1611938355.567110
+H2F_end5	1611938355.581107
+#Add2	1611938355.581546
+F2H_start6	1611938355.581569
+F2H_end6	1611938355.591203
+H2F_start6	1611938355.596183
+H2F_end6	1611938355.603998
+#tensorHalfAdd_end2	1611938355.604023
+#Tanh2	1611938355.604813
+F2H_start7	1611938355.604831
+F2H_end7	1611938355.614466
+H2F_start7	1611938355.619635
+H2F_end7	1611938355.627468
+#tensorHalfTanh_end2	1611938355.627493
+#Pool2	1611938355.628057
+F2H_start8	1611938355.628078
+F2H_end8	1611938355.637964
+H2F_start8	1611938355.643943
+H2F_end8	1611938355.648327
+#tensorHalfPooling_end2	1611938355.648351	0.000024
+F2H_start9	1611938355.648869
+F2H_end9	1611938355.651993
+H2F_start9	1611938355.723785
+H2F_end9	1611938355.731596
+#Add3	1611938355.732162
+F2H_start10	1611938355.732182
+F2H_end10	1611938355.737577
+H2F_start10	1611938355.742225
+H2F_end10	1611938355.746447
+#tensorHalfAdd_end3	1611938355.746470
+#Tanh3	1611938355.746651
+F2H_start11	1611938355.746668
+F2H_end11	1611938355.752099
+H2F_start11	1611938355.754753
+H2F_end11	1611938355.758742
+#tensorHalfTanh_end3	1611938355.758767
+F2H_start12	1611938355.759535
+F2H_end12	1611938355.765247
+H2F_start12	1611938355.849729
+H2F_end12	1611938355.855507
+#Add4	1611938355.856046
+F2H_start13	1611938355.856066
+F2H_end13	1611938355.859693
+H2F_start13	1611938355.862853
+H2F_end13	1611938355.865719
+#tensorHalfAdd_end4	1611938355.865765
+#Tanh4	1611938355.866222
+F2H_start14	1611938355.866241
+F2H_end14	1611938355.870104
+H2F_start14	1611938355.871926
+H2F_end14	1611938355.874841
+#tensorHalfTanh_end4	1611938355.874870
+F2H_start15	1611938355.875679
+F2H_end15	1611938355.879728
+H2F_start15	1611938355.965677
+H2F_end15	1611938355.971309
+#Add5	1611938355.972026
+F2H_start16	1611938355.972048
+F2H_end16	1611938355.975893
+H2F_start16	1611938355.979050
+H2F_end16	1611938355.981938
+#tensorHalfAdd_end5	1611938355.981962
+#Tanh5	1611938355.982149
+F2H_start17	1611938355.982167
+F2H_end17	1611938355.985747
+H2F_start17	1611938355.987564
+H2F_end17	1611938355.990382
+#tensorHalfTanh_end5	1611938355.990406
+#Pool3	1611938355.990921
+F2H_start18	1611938355.990940
+F2H_end18	1611938355.995182
+H2F_start18	1611938355.997729
+H2F_end18	1611938355.999645
+#tensorHalfPooling_end3	1611938355.999678	0.000033
+#Mul1	1611938356.000443
+F2H_start19	1611938356.000462
+F2H_end19	1611938356.002016
+H2F_start19	1611938356.003562
+H2F_end19	1611938356.004069
+#tensorHalfGemm_end1	1611938356.004089
+#Add6	1611938356.004278
+F2H_start20	1611938356.004296
+F2H_end20	1611938356.005177
+H2F_start20	1611938356.005267
+H2F_end20	1611938356.005596
+#tensorHalfAdd_end6	1611938356.005615
+Softmax1	1611938356.005758
+Softmax_end1	1611938356.006327	0.000569
+F2H_start1	1611938356.046776
+F2H_end1	1611938356.048143
+H2F_start1	1611938356.136184
+H2F_end1	1611938356.155351
+#Add1	1611938356.155547
+F2H_start2	1611938356.155563
+F2H_end2	1611938356.169004
+H2F_start2	1611938356.175316
+H2F_end2	1611938356.185188
+#tensorHalfAdd_end1	1611938356.185214
+#Tanh1	1611938356.185823
+F2H_start3	1611938356.185839
+F2H_end3	1611938356.198292
+H2F_start3	1611938356.204695
+H2F_end3	1611938356.214519
+#tensorHalfTanh_end1	1611938356.214542
+#Pool1	1611938356.215039
+F2H_start4	1611938356.215055
+F2H_end4	1611938356.228276
+H2F_start4	1611938356.235868
+H2F_end4	1611938356.241003
+#tensorHalfPooling_end1	1611938356.241028	0.000026
+F2H_start5	1611938356.241447
+F2H_end5	1611938356.245104
+H2F_start5	1611938356.364041
+H2F_end5	1611938356.378843
+#Add2	1611938356.379389
+F2H_start6	1611938356.379412
+F2H_end6	1611938356.389011
+H2F_start6	1611938356.393937
+H2F_end6	1611938356.401773
+#tensorHalfAdd_end2	1611938356.401801
+#Tanh2	1611938356.401948
+F2H_start7	1611938356.401967
+F2H_end7	1611938356.411565
+H2F_start7	1611938356.416732
+H2F_end7	1611938356.424565
+#tensorHalfTanh_end2	1611938356.424591
+#Pool2	1611938356.425143
+F2H_start8	1611938356.425162
+F2H_end8	1611938356.435040
+H2F_start8	1611938356.440866
+H2F_end8	1611938356.444691
+#tensorHalfPooling_end2	1611938356.444718	0.000026
+F2H_start9	1611938356.445254
+F2H_end9	1611938356.448395
+H2F_start9	1611938356.520034
+H2F_end9	1611938356.527928
+#Add3	1611938356.528504
+F2H_start10	1611938356.528525
+F2H_end10	1611938356.534073
+H2F_start10	1611938356.538704
+H2F_end10	1611938356.542842
+#tensorHalfAdd_end3	1611938356.542868
+#Tanh3	1611938356.543074
+F2H_start11	1611938356.543092
+F2H_end11	1611938356.548138
+H2F_start11	1611938356.550805
+H2F_end11	1611938356.554698
+#tensorHalfTanh_end3	1611938356.554721
+F2H_start12	1611938356.555267
+F2H_end12	1611938356.560467
+H2F_start12	1611938356.644019
+H2F_end12	1611938356.649836
+#Add4	1611938356.650206
+F2H_start13	1611938356.650225
+F2H_end13	1611938356.653907
+H2F_start13	1611938356.657061
+H2F_end13	1611938356.659870
+#tensorHalfAdd_end4	1611938356.659894
+#Tanh4	1611938356.660375
+F2H_start14	1611938356.660394
+F2H_end14	1611938356.664174
+H2F_start14	1611938356.665993
+H2F_end14	1611938356.668837
+#tensorHalfTanh_end4	1611938356.668863
+F2H_start15	1611938356.669115
+F2H_end15	1611938356.672914
+H2F_start15	1611938356.758160
+H2F_end15	1611938356.763595
+#Add5	1611938356.764277
+F2H_start16	1611938356.764296
+F2H_end16	1611938356.767977
+H2F_start16	1611938356.771087
+H2F_end16	1611938356.773927
+#tensorHalfAdd_end5	1611938356.773949
+#Tanh5	1611938356.774443
+F2H_start17	1611938356.774461
+F2H_end17	1611938356.778067
+H2F_start17	1611938356.779880
+H2F_end17	1611938356.782646
+#tensorHalfTanh_end5	1611938356.782670
+#Pool3	1611938356.783204
+F2H_start18	1611938356.783224
+F2H_end18	1611938356.787247
+H2F_start18	1611938356.789935
+H2F_end18	1611938356.792033
+#tensorHalfPooling_end3	1611938356.792058	0.000025
+#Mul1	1611938356.792642
+F2H_start19	1611938356.792661
+F2H_end19	1611938356.794293
+H2F_start19	1611938356.795778
+H2F_end19	1611938356.796253
+#tensorHalfGemm_end1	1611938356.796274
+#Add6	1611938356.796421
+F2H_start20	1611938356.796438
+F2H_end20	1611938356.797160
+H2F_start20	1611938356.797246
+H2F_end20	1611938356.797534
+#tensorHalfAdd_end6	1611938356.797552
+Softmax1	1611938356.797910
+Softmax_end1	1611938356.798482	0.000571
+F2H_start1	1611938356.833520
+F2H_end1	1611938356.834867
+H2F_start1	1611938356.923102
+H2F_end1	1611938356.942570
+#Add1	1611938356.942821
+F2H_start2	1611938356.942840
+F2H_end2	1611938356.956181
+H2F_start2	1611938356.962902
+H2F_end2	1611938356.972738
+#tensorHalfAdd_end1	1611938356.972762
+#Tanh1	1611938356.972993
+F2H_start3	1611938356.973007
+F2H_end3	1611938356.985781
+H2F_start3	1611938356.992206
+H2F_end3	1611938357.002100
+#tensorHalfTanh_end1	1611938357.002122
+#Pool1	1611938357.002349
+F2H_start4	1611938357.002363
+F2H_end4	1611938357.015040
+H2F_start4	1611938357.022592
+H2F_end4	1611938357.027751
+#tensorHalfPooling_end1	1611938357.027780	0.000029
+F2H_start5	1611938357.028426
+F2H_end5	1611938357.032498
+H2F_start5	1611938357.151985
+H2F_end5	1611938357.166774
+#Add2	1611938357.167523
+F2H_start6	1611938357.167545
+F2H_end6	1611938357.177547
+H2F_start6	1611938357.182515
+H2F_end6	1611938357.190376
+#tensorHalfAdd_end2	1611938357.190403
+#Tanh2	1611938357.190550
+F2H_start7	1611938357.190568
+F2H_end7	1611938357.200338
+H2F_start7	1611938357.205490
+H2F_end7	1611938357.213417
+#tensorHalfTanh_end2	1611938357.213452
+#Pool2	1611938357.213717
+F2H_start8	1611938357.213737
+F2H_end8	1611938357.223288
+H2F_start8	1611938357.229505
+H2F_end8	1611938357.233524
+#tensorHalfPooling_end2	1611938357.233546	0.000023
+F2H_start9	1611938357.233688
+F2H_end9	1611938357.236989
+H2F_start9	1611938357.309192
+H2F_end9	1611938357.316849
+#Add3	1611938357.317593
+F2H_start10	1611938357.317614
+F2H_end10	1611938357.322778
+H2F_start10	1611938357.327403
+H2F_end10	1611938357.331437
+#tensorHalfAdd_end3	1611938357.331472
+#Tanh3	1611938357.331869
+F2H_start11	1611938357.331888
+F2H_end11	1611938357.336982
+H2F_start11	1611938357.339610
+H2F_end11	1611938357.343463
+#tensorHalfTanh_end3	1611938357.343485
+F2H_start12	1611938357.343931
+F2H_end12	1611938357.349302
+H2F_start12	1611938357.432588
+H2F_end12	1611938357.438272
+#Add4	1611938357.438593
+F2H_start13	1611938357.438613
+F2H_end13	1611938357.442316
+H2F_start13	1611938357.445489
+H2F_end13	1611938357.448353
+#tensorHalfAdd_end4	1611938357.448377
+#Tanh4	1611938357.448753
+F2H_start14	1611938357.448771
+F2H_end14	1611938357.452586
+H2F_start14	1611938357.454409
+H2F_end14	1611938357.457232
+#tensorHalfTanh_end4	1611938357.457264
+F2H_start15	1611938357.457494
+F2H_end15	1611938357.461570
+H2F_start15	1611938357.546275
+H2F_end15	1611938357.551709
+#Add5	1611938357.552066
+F2H_start16	1611938357.552086
+F2H_end16	1611938357.555865
+H2F_start16	1611938357.558959
+H2F_end16	1611938357.561814
+#tensorHalfAdd_end5	1611938357.561839
+#Tanh5	1611938357.562206
+F2H_start17	1611938357.562223
+F2H_end17	1611938357.565898
+H2F_start17	1611938357.567741
+H2F_end17	1611938357.570567
+#tensorHalfTanh_end5	1611938357.570590
+#Pool3	1611938357.570980
+F2H_start18	1611938357.571000
+F2H_end18	1611938357.574853
+H2F_start18	1611938357.577579
+H2F_end18	1611938357.579650
+#tensorHalfPooling_end3	1611938357.579674	0.000025
+#Mul1	1611938357.580439
+F2H_start19	1611938357.580459
+F2H_end19	1611938357.582105
+H2F_start19	1611938357.583594
+H2F_end19	1611938357.584019
+#tensorHalfGemm_end1	1611938357.584040
+#Add6	1611938357.584221
+F2H_start20	1611938357.584238
+F2H_end20	1611938357.585035
+H2F_start20	1611938357.585137
+H2F_end20	1611938357.585415
+#tensorHalfAdd_end6	1611938357.585435
+Softmax1	1611938357.585707
+Softmax_end1	1611938357.586285	0.000578
diff --git a/hpvm/test/dnn_benchmarks/scripts/run_dnn.py b/hpvm/test/dnn_benchmarks/scripts/run_dnn.py
new file mode 100644
index 0000000000..b4e4aa2b2b
--- /dev/null
+++ b/hpvm/test/dnn_benchmarks/scripts/run_dnn.py
@@ -0,0 +1,124 @@
+import os.path
+from os import path
+import sys
+
+binary_dir = "../../../build/tools/hpvm/test/dnn_benchmarks/"
+
+temp_file_name = "temp.txt"
+pred_binary_prefix = "test_"
+pred_binary_suffix = "_pred" 
+
+rt_binary_suffix = "_rt_pred"
+max_num_runs = 20
+
+
+def max_num_configs (config_file):
+    num_configs = 0
+    with open(config_file, "r") as f:
+    	for line in f:
+    		if "conf" in line:
+    			num_configs = num_configs + 1
+    return (num_configs + 1)
+
+
+def read_and_write_config (config_file, config_num, temp_file):
+    config = ""
+    with open(config_file, "r") as f:
+    	conf = "conf" + str(config_num)
+    	read_config = False
+    	read_first_line = False
+    	for line in f:
+    		if read_first_line == False:
+    			config = config + line
+    			read_first_line = True
+    			continue
+    		if "-----" in line and read_config == True:
+    			read_config = False
+    			config = config + line
+    			break
+    		if read_config == True:
+                        config = config + line
+                        continue
+    		if conf in line:
+    			read_config = True
+    			config = config + "+++++\n"
+    			config = config + line
+    print("config: ")
+    print(config)
+    with open(temp_file, "w") as f:
+    	f.write(config)
+
+
+def predictive_tuning_exec():
+    num_args = len(sys.argv)
+    binary_files = list()
+    arg = 2
+    while arg < num_args:
+    	binary_files.append(sys.argv[arg])
+    	arg = arg + 1
+
+    for dnn_name in binary_files:
+    	dnn_dir = "../benchmarks/" + dnn_name
+    	binary_name = binary_dir + pred_binary_prefix + dnn_name + pred_binary_suffix
+    	pred_dir = dnn_dir + "/predictive"
+    	config_file = pred_dir + "/" + dnn_name + ".txt"
+    	temp_file = pred_dir + "/" + temp_file_name
+    	print("dnn_dir: " + dnn_dir)
+    	print("binary name: " + binary_name)
+    	print("pred_dir: " + pred_dir)
+    	print("config_file: " + config_file)
+    	print("temp_file: " + temp_file)
+    	config_num = 1
+    	max_configs = max_num_configs(config_file)
+    	while config_num < max_configs:
+    		read_and_write_config(config_file, config_num, temp_file)
+    		exec_command = binary_name
+    		print(exec_command) 
+    		os.system(exec_command)
+    		config_num = config_num + 1
+
+
+def runtime_tuning_exec():
+    num_args = len(sys.argv)
+    binary_files = list()
+    arg = 2
+    while arg < num_args:
+        binary_files.append(sys.argv[arg])
+        arg = arg + 1
+
+    for dnn_name in binary_files:
+    	binary_dir = "../benchmarks/" + dnn_name
+    	binary_name = binary_dir + rt_binary_suffix
+    	conf_dir = binary_dir + "/data"
+    	print("binary_dir: " + binary_dir)
+    	print("binary name: " + binary_name)
+    	run = 0
+    	while run < max_num_runs:
+    		exec_command = binary_name
+    		print(exec_command)
+    		os.system(exec_command)
+    		exec_command = "/home/nvidia/poll 13"
+    		print(exec_command)
+    		os.system(exec_command)
+    		exec_command = "mv " + conf_dir + "/profile_info_0.txt " + conf_dir + "/profile_info_out-run-" + str(run) + ".txt"
+    		print(exec_command)
+    		os.system(exec_command)
+    		run = run + 1
+    	exec_command = "rm -rf " + conf_dir +  "/run_data"
+    	print(exec_command)
+    	os.system(exec_command)
+    	exec_command = "mkdir " + conf_dir + "/run_data"  
+    	print(exec_command)
+    	os.system(exec_command)  
+    		
+
+
+if __name__ == "__main__":
+    if sys.argv[1] == "--runtime_tuning":
+    	runtime_tuning_exec()
+    elif sys.argv[1] == "--predictive_tuning":
+    	predictive_tuning_exec()
+    else:
+    	print("Error: Use --runtime_tuning or --predictive_tuning flags!")
+    	sys.exit()
+
diff --git a/hpvm/test/dnn_benchmarks/scripts/run_dnns.py b/hpvm/test/dnn_benchmarks/scripts/run_dnns.py
new file mode 100644
index 0000000000..990fd67246
--- /dev/null
+++ b/hpvm/test/dnn_benchmarks/scripts/run_dnns.py
@@ -0,0 +1,17 @@
+import os
+import sys
+
+#dnns = "alexnet alexnet2 vgg16_cifar10 vgg16_cifar100 resnet18 mobilenet lenet_mnist"
+dnns = "alexnet"
+
+if sys.argv[1] == "--runtime":
+	exec_command = "python3 run_dnn.py" + " --runtime_tuning  "  + dnns
+	print(exec_command)
+	os.system(exec_command)
+elif sys.argv[1] == "--predictive":
+	exec_command = "python3 run_dnn.py" + " --predictive_tuning  " + dnns 
+	print(exec_command)
+	os.system(exec_command)
+else:
+	print("Error: Use --runtime_tuning or --predictive_tuning flags!")
+	sys.exit()
-- 
GitLab