Aayush-Ankit / puma-simulator

[ASPLOS 2019] PUMA-simulator provides a detailed simulation model of a dataflow architecture built with NVM (non-volatile memory), and runs ML models compiled using the puma compiler.
MIT License
50 stars 43 forks source link

Questions about num_inputs #43

Closed FrankWu1998 closed 3 years ago

FrankWu1998 commented 3 years ago

When I change the num_inputs in test/testasm/mlp/input.py, the command "python dpe.py -n mlp" gives the same result. Is this reasonable? why?

FrankWu1998 commented 3 years ago

The input size and output size of mlp-l4-mnist are 784 and 10 respectively, but why the output in output.txt is 210 values?

leibo-hust commented 3 years ago

@FrankWu1998 Hi, were you able to run the mlp model successfully? I followed the steps given, but I keep having some minor problems. Is there anything that needs attention or modification?

Thanks

FrankWu1998 commented 3 years ago

@leibo-hust I ran mlp successfully because I followed every step in how_to_run.md.

leibo-hust commented 3 years ago

@FrankWu1998 I also followed every step in how_to_run.md and tried many times, but had problems. I'm using the latest version, how about you?

FrankWu1998 commented 3 years ago

@leibo-hust Yes, I use the latest branch "training". I think you only need to follow the steps in how_to_run.md exactly. It should be noted that I chose the i_mvm function as shown in the figure below. image

leibo-hust commented 3 years ago

@FrankWu1998 Thank you very much. I checked and I use this _imvm as well. Amazingly, I just executed it again from scratch without making any changes and I got the following error that I never encountered before. Then I changed _num_tilecompute in config.py to 4 (I used 5 before because I think there were 5 tiles starting from 0 to 4) and it actually executed successfully. image

Finally I found out that I can't use the -t argument, either -t 4 or -t 5 will be wrong. We should just use python dpe.py -n mlp.

FrankWu1998 commented 3 years ago

@leibo-hust It is my pleasure. As far as I know, there are two tiles used for input and output, and the remaining tiles are used to configure DNN, so you need to pay attention to this. I think num_tiles should depend on the size of the DNN, but I am not very sure.

leibo-hust commented 3 years ago

@FrankWu1998 Yes, you are right. num_tiles_compute depends on the size of the NN. I think it should also be related to the number of nodes per layer and the size of the tile. I just compared the results of runs with different num_tile_compute values and the results are the same.