diff --git a/hpvm/projects/keras/frontend/__init__.py b/hpvm/projects/keras/keras_frontend/__init__.py similarity index 100% rename from hpvm/projects/keras/frontend/__init__.py rename to hpvm/projects/keras/keras_frontend/__init__.py diff --git a/hpvm/projects/keras/frontend/approxhpvm_translator.py b/hpvm/projects/keras/keras_frontend/approxhpvm_translator.py similarity index 99% rename from hpvm/projects/keras/frontend/approxhpvm_translator.py rename to hpvm/projects/keras/keras_frontend/approxhpvm_translator.py index f3bc0076c6024847620174d0bd311017b8f1c6e5..48f469f2261d3a946b03760f600804b9b661316f 100644 --- a/hpvm/projects/keras/frontend/approxhpvm_translator.py +++ b/hpvm/projects/keras/keras_frontend/approxhpvm_translator.py @@ -1,11 +1,11 @@ import sys import numpy as np -from frontend.promise_translator import PromiseRtTranslator -from frontend.hpvm_dfg_translator import HPVMTranslator -from frontend.weight_utils import dumpLabels, dumpData, dumpConvWeights, dumpFcWeights, dumpFcBias -from frontend.utils import * -from frontend.knobs import * +from keras_frontend.promise_translator import PromiseRtTranslator +from keras_frontend.hpvm_dfg_translator import HPVMTranslator +from keras_frontend.weight_utils import dumpLabels, dumpData, dumpConvWeights, dumpFcWeights, dumpFcBias +from keras_frontend.utils import * +from keras_frontend.knobs import * import keras import os diff --git a/hpvm/projects/keras/frontend/config.py b/hpvm/projects/keras/keras_frontend/config.py similarity index 100% rename from hpvm/projects/keras/frontend/config.py rename to hpvm/projects/keras/keras_frontend/config.py diff --git a/hpvm/projects/keras/frontend/hpvm_dfg_translator.py b/hpvm/projects/keras/keras_frontend/hpvm_dfg_translator.py similarity index 99% rename from hpvm/projects/keras/frontend/hpvm_dfg_translator.py rename to hpvm/projects/keras/keras_frontend/hpvm_dfg_translator.py index d14c64bbf406e991b0b623fa3b56f938153e7fe8..53369478e39e058fd4e4e065d00fb55e0bdc2960 100644 --- a/hpvm/projects/keras/frontend/hpvm_dfg_translator.py +++ b/hpvm/projects/keras/keras_frontend/hpvm_dfg_translator.py @@ -1,8 +1,8 @@ import os import sys -from frontend.utils import * -from frontend.hpvm_intrinsics import * +from keras_frontend.utils import * +from keras_frontend.hpvm_intrinsics import * class HPVMTranslator: diff --git a/hpvm/projects/keras/frontend/hpvm_intrinsics.py b/hpvm/projects/keras/keras_frontend/hpvm_intrinsics.py similarity index 100% rename from hpvm/projects/keras/frontend/hpvm_intrinsics.py rename to hpvm/projects/keras/keras_frontend/hpvm_intrinsics.py diff --git a/hpvm/projects/keras/frontend/knobs.py b/hpvm/projects/keras/keras_frontend/knobs.py similarity index 100% rename from hpvm/projects/keras/frontend/knobs.py rename to hpvm/projects/keras/keras_frontend/knobs.py diff --git a/hpvm/projects/keras/frontend/promise_translator.py b/hpvm/projects/keras/keras_frontend/promise_translator.py similarity index 99% rename from hpvm/projects/keras/frontend/promise_translator.py rename to hpvm/projects/keras/keras_frontend/promise_translator.py index 015c1c562a0be295b9e3df0381f582e454192f16..124037c003fd89bc9a57146ea7a7c0826e70bff7 100644 --- a/hpvm/projects/keras/frontend/promise_translator.py +++ b/hpvm/projects/keras/keras_frontend/promise_translator.py @@ -4,8 +4,8 @@ import random import numpy as np import sys from keras import backend as K -from frontend.utils import * -from frontend.quantize_utils import get_best_quant_range, dumpQuantizeRanges +from keras_frontend.utils import * +from keras_frontend.quantize_utils import get_best_quant_range, dumpQuantizeRanges class State: @@ -600,7 +600,7 @@ class PromiseRtTranslator: promise_layer_str = "void* " + output_var + " = tensorAdd(" + input_vars[0] promise_layer_str += ", " + input_vars[1] + "); \n" - print (promise_layer_str) + #print (promise_layer_str) self.program_str += promise_layer_str diff --git a/hpvm/projects/keras/frontend/quantize_utils.py b/hpvm/projects/keras/keras_frontend/quantize_utils.py similarity index 100% rename from hpvm/projects/keras/frontend/quantize_utils.py rename to hpvm/projects/keras/keras_frontend/quantize_utils.py diff --git a/hpvm/projects/keras/frontend/setup.py b/hpvm/projects/keras/keras_frontend/setup.py similarity index 100% rename from hpvm/projects/keras/frontend/setup.py rename to hpvm/projects/keras/keras_frontend/setup.py diff --git a/hpvm/projects/keras/frontend/utils.py b/hpvm/projects/keras/keras_frontend/utils.py similarity index 100% rename from hpvm/projects/keras/frontend/utils.py rename to hpvm/projects/keras/keras_frontend/utils.py diff --git a/hpvm/projects/keras/frontend/weight_utils.py b/hpvm/projects/keras/keras_frontend/weight_utils.py similarity index 100% rename from hpvm/projects/keras/frontend/weight_utils.py rename to hpvm/projects/keras/keras_frontend/weight_utils.py diff --git a/hpvm/projects/keras/setup.py b/hpvm/projects/keras/setup.py index 9da7193379454d1d5cdc1e63f6b436d3771e15a5..bdf192140639569ccaed605ff9238d5ff56a6870 100644 --- a/hpvm/projects/keras/setup.py +++ b/hpvm/projects/keras/setup.py @@ -2,11 +2,17 @@ from setuptools import setup setup( - name='frontend', - version='1.0', - description='ApproxHPVM frontend modules', + name='keras_frontend', + version='0.1', + description='ApproxHPVM Keras Frontend. Keras -> HPVM Translator', author='Hashim', author_email='hsharif3@illinois.edu', - packages=['frontend'], - install_requires=[], + packages=['keras_frontend'], + install_requires=[ + "torchvision==0.8.2", + "tensorflow==1.14", + "tensorflow-gpu==1.14", + "keras==2.1.6", + "scipy==1.1.0" + ], ) diff --git a/hpvm/projects/keras/src/Benchmark.py b/hpvm/projects/keras/src/Benchmark.py index aaa7bdacc47ee570c21ab5e4d797737e5f193811..b0df9d98d606c6db3c0eef4af6acb4797f604651 100644 --- a/hpvm/projects/keras/src/Benchmark.py +++ b/hpvm/projects/keras/src/Benchmark.py @@ -6,9 +6,9 @@ import shutil import subprocess from keras.utils.np_utils import to_categorical from keras.models import load_model -from frontend.approxhpvm_translator import translate_to_approxhpvm -from frontend.weight_utils import dumpCalibrationData -from frontend.weight_utils import reloadHPVMWeights +from keras_frontend.approxhpvm_translator import translate_to_approxhpvm +from keras_frontend.weight_utils import dumpCalibrationData +from keras_frontend.weight_utils import reloadHPVMWeights # Every CNN Benchmark must inherit from Benchmark class @@ -39,10 +39,10 @@ class Benchmark: # Compiles frontend generated sources - def compileSource(self, working_dir): + def compileSource(self, working_dir, src_name, binary_name): - src_file = os.getcwd() + "/" + working_dir + "/approxhpvm_src.cc" - target_binary = os.getcwd() + "/" + working_dir + "/HPVM_binary" + src_file = os.getcwd() + "/" + working_dir + "/" + src_name # approxhpvm_src.cc" + target_binary = os.getcwd() + "/" + working_dir + "/" + binary_name # HPVM_binary" approx_conf_file = "tuner_confs.txt" FNULL = open(os.devnull, 'w') @@ -135,7 +135,12 @@ class Benchmark: (argv[1] == "hpvm_reload")) # Do not redump HPVM weights if `hpvm_reload` used if len(argv) > 3 and argv[3] == "compile": - self.compileSource(working_dir) + self.compileSource(working_dir, "approxhpvm_src.cc", "HPVM_binary") + else: + self.printUsage() + + if len(argv) > 4 and argv[4] == "compile_tuner": + self.compileSource(working_dir, "approxhpvm_tuner_src.cc", "HPVM_tuner_binary") else: self.printUsage() @@ -144,8 +149,8 @@ class Benchmark: model.save_weights(self.keras_model_file) - elif len(argv) > 2: - self.printUsage() + #elif len(argv) > 2: + # self.printUsage()