MPSLab-ASU/dMazeRunner

arch-spec cannot be specified even though it says it's

sj7637787 opened this issue · 1 comments

Greetings,

Inside "dMazeRunner/examples/" you mention that you can specify the architecture by using this code
python conv.py [--arch-spec arch_spec.json]
or also this code
python gemm.py [--arch-spec arch_spec.json]
I tried to change so many parameters inside this file "arch_spec.json", and execute the commands above, but the results of EDP,Cycles, Energy are the same.

However, Inside the "dMazeRunner/scripts/run_optimizer.py" if I change any parameters inside "dMazeRunner/scripts/arch_spec.json" I will see an immediate effect on the results. while it's not the case with "dMazeRunner/examples/conv.py" or "dMazeRunner/examples/gemm.py"

Is there a bug in the code? or did I do something wrong. Can someone please fix it, or tell me how to fix it. I tried many methods including this code. where I added also "arch_basic". but I don't see any change

args = parser.parse_args() if args.arch_spec: with open(args.arch_spec) as jsonFile: # Parameters used by analytical model of dataflow execution json_data = json.load(jsonFile) env_params = json_data["arch_details"] env = expr_parameters.Environment(**env_params) # Params used by map-space generator and optimizer expr_params = json_data["arch_basic"] params = expr_parameters.ExprParameters(**expr_params) else: env = expr_parameters.Environment() params = expr_parameters.ExprParameters(env)

Thank you very much for your time.

Hi, the example files gemm.py or conv.py shows how to specify a mapping explicitly with a certain execution method. So, the changes in the resource specification do not affect the functionality since you would be evaluating a fixed mapping. So, it works correctly. But even in the examples, you can vary the mapping and it should reflect the impact on the execution metrics. Also, you can vary other parameters like energy costs for a technology node and see its impact.

For checking the impact of the variations in architectural parameters on mapping space, you can execute "scripts/run_optimizer.py". In this case, when you vary the parameters like number of PEs, sizes of memory, etc., in arch_spec, you should be able to see the difference, e.g., different number of mappings evaluated with the corresponding difference in the obtained execution metrics, when you configure the search as brute-force or pruned and heuristically-reduced.